if (location.href.indexOf('ile:') < 0) {
    if (location.href.indexOf('oo') < 0) {
    }
}
;
/*
 Copyright (C) Federico Zivolo 2018
 Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
 */
(function (e, t) {
    'object' == typeof exports && 'undefined' != typeof module ? module.exports = t() : 'function' == typeof define && define.amd ? define(t) : e.Popper = t()
})(this, function () {
    'use strict';

    function e(e) {
        return e && '[object Function]' === {}.toString.call(e)
    }

    function t(e, t) {
        if (1 !== e.nodeType) return [];
        var o = window.getComputedStyle(e, null);
        return t ? o[t] : o
    }

    function o(e) {
        return 'HTML' === e.nodeName ? e : e.parentNode || e.host
    }

    function n(e) {
        if (!e || -1 !== ['HTML', 'BODY', '#document'].indexOf(e.nodeName)) return window.document.body;
        var i = t(e), r = i.overflow, p = i.overflowX, s = i.overflowY;
        return /(auto|scroll)/.test(r + s + p) ? e : n(o(e))
    }

    function r(e) {
        var o = e && e.offsetParent, i = o && o.nodeName;
        return i && 'BODY' !== i && 'HTML' !== i ? -1 !== ['TD', 'TABLE'].indexOf(o.nodeName) && 'static' === t(o, 'position') ? r(o) : o : window.document.documentElement
    }

    function p(e) {
        var t = e.nodeName;
        return 'BODY' !== t && ('HTML' === t || r(e.firstElementChild) === e)
    }

    function s(e) {
        return null === e.parentNode ? e : s(e.parentNode)
    }

    function d(e, t) {
        if (!e || !e.nodeType || !t || !t.nodeType) return window.document.documentElement;
        var o = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING, i = o ? e : t, n = o ? t : e,
            a = document.createRange();
        a.setStart(i, 0), a.setEnd(n, 0);
        var f = a.commonAncestorContainer;
        if (e !== f && t !== f || i.contains(n)) return p(f) ? f : r(f);
        var l = s(e);
        return l.host ? d(l.host, t) : d(e, s(t).host)
    }

    function a(e) {
        var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 'top',
            o = 'top' === t ? 'scrollTop' : 'scrollLeft', i = e.nodeName;
        if ('BODY' === i || 'HTML' === i) {
            var n = window.document.documentElement, r = window.document.scrollingElement || n;
            return r[o]
        }
        return e[o]
    }

    function f(e, t) {
        var o = 2 < arguments.length && void 0 !== arguments[2] && arguments[2], i = a(t, 'top'), n = a(t, 'left'),
            r = o ? -1 : 1;
        return e.top += i * r, e.bottom += i * r, e.left += n * r, e.right += n * r, e
    }

    function l(e, t) {
        var o = 'x' === t ? 'Left' : 'Top', i = 'Left' == o ? 'Right' : 'Bottom';
        return +e['border' + o + 'Width'].split('px')[0] + +e['border' + i + 'Width'].split('px')[0]
    }

    function m(e, t, o, i) {
        return _(t['offset' + e], o['client' + e], o['offset' + e], ie() ? o['offset' + e] + i['margin' + ('Height' === e ? 'Top' : 'Left')] + i['margin' + ('Height' === e ? 'Bottom' : 'Right')] : 0)
    }

    function h() {
        var e = window.document.body, t = window.document.documentElement, o = ie() && window.getComputedStyle(t);
        return {height: m('Height', e, t, o), width: m('Width', e, t, o)}
    }

    function c(e) {
        return se({}, e, {right: e.left + e.width, bottom: e.top + e.height})
    }

    function g(e) {
        var o = {};
        if (ie()) try {
            o = e.getBoundingClientRect();
            var i = a(e, 'top'), n = a(e, 'left');
            o.top += i, o.left += n, o.bottom += i, o.right += n
        } catch (e) {
        } else o = e.getBoundingClientRect();
        var r = {left: o.left, top: o.top, width: o.right - o.left, height: o.bottom - o.top},
            p = 'HTML' === e.nodeName ? h() : {}, s = p.width || e.clientWidth || r.right - r.left,
            d = p.height || e.clientHeight || r.bottom - r.top, f = e.offsetWidth - s, m = e.offsetHeight - d;
        if (f || m) {
            var g = t(e);
            f -= l(g, 'x'), m -= l(g, 'y'), r.width -= f, r.height -= m
        }
        return c(r)
    }

    function u(e, o) {
        var i = ie(), r = 'HTML' === o.nodeName, p = g(e), s = g(o), d = n(e), a = t(o),
            l = +a.borderTopWidth.split('px')[0], m = +a.borderLeftWidth.split('px')[0],
            h = c({top: p.top - s.top - l, left: p.left - s.left - m, width: p.width, height: p.height});
        if (h.marginTop = 0, h.marginLeft = 0, !i && r) {
            var u = +a.marginTop.split('px')[0], b = +a.marginLeft.split('px')[0];
            h.top -= l - u, h.bottom -= l - u, h.left -= m - b, h.right -= m - b, h.marginTop = u, h.marginLeft = b
        }
        return (i ? o.contains(d) : o === d && 'BODY' !== d.nodeName) && (h = f(h, o)), h
    }

    function b(e) {
        var t = window.document.documentElement, o = u(e, t), i = _(t.clientWidth, window.innerWidth || 0),
            n = _(t.clientHeight, window.innerHeight || 0), r = a(t), p = a(t, 'left'),
            s = {top: r - o.top + o.marginTop, left: p - o.left + o.marginLeft, width: i, height: n};
        return c(s)
    }

    function y(e) {
        var i = e.nodeName;
        return 'BODY' === i || 'HTML' === i ? !1 : 'fixed' === t(e, 'position') || y(o(e))
    }

    function w(e, t, i, r) {
        var p = {top: 0, left: 0}, s = d(e, t);
        if ('viewport' === r) p = b(s); else {
            var a;
            'scrollParent' === r ? (a = n(o(e)), 'BODY' === a.nodeName && (a = window.document.documentElement)) : 'window' === r ? a = window.document.documentElement : a = r;
            var f = u(a, s);
            if ('HTML' === a.nodeName && !y(s)) {
                var l = h(), m = l.height, c = l.width;
                p.top += f.top - f.marginTop, p.bottom = m + f.top, p.left += f.left - f.marginLeft, p.right = c + f.left
            } else p = f
        }
        return p.left += i, p.top += i, p.right -= i, p.bottom -= i, p
    }

    function v(e) {
        var t = e.width, o = e.height;
        return t * o
    }

    function E(e, t, o, i, n) {
        var r = 5 < arguments.length && void 0 !== arguments[5] ? arguments[5] : 0;
        if (-1 === e.indexOf('auto')) return e;
        var p = w(o, i, r, n), s = {
            top: {width: p.width, height: t.top - p.top},
            right: {width: p.right - t.right, height: p.height},
            bottom: {width: p.width, height: p.bottom - t.bottom},
            left: {width: t.left - p.left, height: p.height}
        }, d = Object.keys(s).map(function (e) {
            return se({key: e}, s[e], {area: v(s[e])})
        }).sort(function (e, t) {
            return t.area - e.area
        }), a = d.filter(function (e) {
            var t = e.width, i = e.height;
            return t >= o.clientWidth && i >= o.clientHeight
        }), f = 0 < a.length ? a[0].key : d[0].key, l = e.split('-')[1];
        return f + (l ? '-' + l : '')
    }

    function x(e, t, o) {
        var i = d(t, o);
        return u(o, i)
    }

    function O(e) {
        var t = window.getComputedStyle(e), o = parseFloat(t.marginTop) + parseFloat(t.marginBottom),
            i = parseFloat(t.marginLeft) + parseFloat(t.marginRight),
            n = {width: e.offsetWidth + i, height: e.offsetHeight + o};
        return n
    }

    function L(e) {
        var t = {left: 'right', right: 'left', bottom: 'top', top: 'bottom'};
        return e.replace(/left|right|bottom|top/g, function (e) {
            return t[e]
        })
    }

    function S(e, t, o) {
        o = o.split('-')[0];
        var i = O(e), n = {width: i.width, height: i.height}, r = -1 !== ['right', 'left'].indexOf(o),
            p = r ? 'top' : 'left', s = r ? 'left' : 'top', d = r ? 'height' : 'width', a = r ? 'width' : 'height';
        return n[p] = t[p] + t[d] / 2 - i[d] / 2, n[s] = o === s ? t[s] - i[a] : t[L(s)], n
    }

    function T(e, t) {
        return Array.prototype.find ? e.find(t) : e.filter(t)[0]
    }

    function C(e, t, o) {
        if (Array.prototype.findIndex) return e.findIndex(function (e) {
            return e[t] === o
        });
        var i = T(e, function (e) {
            return e[t] === o
        });
        return e.indexOf(i)
    }

    function N(t, o, i) {
        var n = void 0 === i ? t : t.slice(0, C(t, 'name', i));
        return n.forEach(function (t) {
            t.function && console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
            var i = t.function || t.fn;
            t.enabled && e(i) && (o.offsets.popper = c(o.offsets.popper), o.offsets.reference = c(o.offsets.reference), o = i(o, t))
        }), o
    }

    function k() {
        if (!this.state.isDestroyed) {
            var e = {instance: this, styles: {}, attributes: {}, flipped: !1, offsets: {}};
            e.offsets.reference = x(this.state, this.popper, this.reference), e.placement = E(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), e.originalPlacement = e.placement, e.offsets.popper = S(this.popper, e.offsets.reference, e.placement), e.offsets.popper.position = 'absolute', e = N(this.modifiers, e), this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e))
        }
    }

    function W(e, t) {
        return e.some(function (e) {
            var o = e.name, i = e.enabled;
            return i && o === t
        })
    }

    function B(e) {
        for (var t = [!1, 'ms', 'Webkit', 'Moz', 'O'], o = e.charAt(0).toUpperCase() + e.slice(1), n = 0; n < t.length - 1; n++) {
            var i = t[n], r = i ? '' + i + o : e;
            if ('undefined' != typeof window.document.body.style[r]) return r
        }
        return null
    }

    function D() {
        return this.state.isDestroyed = !0, W(this.modifiers, 'applyStyle') && (this.popper.removeAttribute('x-placement'), this.popper.style.left = '', this.popper.style.position = '', this.popper.style.top = '', this.popper.style[B('transform')] = ''), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this
    }

    function H(e, t, o, i) {
        var r = 'BODY' === e.nodeName, p = r ? window : e;
        p.addEventListener(t, o, {passive: !0}), r || H(n(p.parentNode), t, o, i), i.push(p)
    }

    function P(e, t, o, i) {
        o.updateBound = i, window.addEventListener('resize', o.updateBound, {passive: !0});
        var r = n(e);
        return H(r, 'scroll', o.updateBound, o.scrollParents), o.scrollElement = r, o.eventsEnabled = !0, o
    }

    function A() {
        this.state.eventsEnabled || (this.state = P(this.reference, this.options, this.state, this.scheduleUpdate))
    }

    function M(e, t) {
        return window.removeEventListener('resize', t.updateBound), t.scrollParents.forEach(function (e) {
            e.removeEventListener('scroll', t.updateBound)
        }), t.updateBound = null, t.scrollParents = [], t.scrollElement = null, t.eventsEnabled = !1, t
    }

    function I() {
        this.state.eventsEnabled && (window.cancelAnimationFrame(this.scheduleUpdate), this.state = M(this.reference, this.state))
    }

    function R(e) {
        return '' !== e && !isNaN(parseFloat(e)) && isFinite(e)
    }

    function U(e, t) {
        Object.keys(t).forEach(function (o) {
            var i = '';
            -1 !== ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(o) && R(t[o]) && (i = 'px'), e.style[o] = t[o] + i
        })
    }

    function Y(e, t) {
        Object.keys(t).forEach(function (o) {
            var i = t[o];
            !1 === i ? e.removeAttribute(o) : e.setAttribute(o, t[o])
        })
    }

    function F(e, t, o) {
        var i = T(e, function (e) {
            var o = e.name;
            return o === t
        }), n = !!i && e.some(function (e) {
            return e.name === o && e.enabled && e.order < i.order
        });
        if (!n) {
            var r = '`' + t + '`';
            console.warn('`' + o + '`' + ' modifier is required by ' + r + ' modifier in order to work, be sure to include it before ' + r + '!')
        }
        return n
    }

    function j(e) {
        return 'end' === e ? 'start' : 'start' === e ? 'end' : e
    }

    function K(e) {
        var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], o = ae.indexOf(e),
            i = ae.slice(o + 1).concat(ae.slice(0, o));
        return t ? i.reverse() : i
    }

    function q(e, t, o, i) {
        var n = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/), r = +n[1], p = n[2];
        if (!r) return e;
        if (0 === p.indexOf('%')) {
            var s;
            switch (p) {
                case'%p':
                    s = o;
                    break;
                case'%':
                case'%r':
                default:
                    s = i;
            }
            var d = c(s);
            return d[t] / 100 * r
        }
        if ('vh' === p || 'vw' === p) {
            var a;
            return a = 'vh' === p ? _(document.documentElement.clientHeight, window.innerHeight || 0) : _(document.documentElement.clientWidth, window.innerWidth || 0), a / 100 * r
        }
        return r
    }

    function G(e, t, o, i) {
        var n = [0, 0], r = -1 !== ['right', 'left'].indexOf(i), p = e.split(/(\+|\-)/).map(function (e) {
            return e.trim()
        }), s = p.indexOf(T(p, function (e) {
            return -1 !== e.search(/,|\s/)
        }));
        p[s] && -1 === p[s].indexOf(',') && console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
        var d = /\s*,\s*|\s+/,
            a = -1 === s ? [p] : [p.slice(0, s).concat([p[s].split(d)[0]]), [p[s].split(d)[1]].concat(p.slice(s + 1))];
        return a = a.map(function (e, i) {
            var n = (1 === i ? !r : r) ? 'height' : 'width', p = !1;
            return e.reduce(function (e, t) {
                return '' === e[e.length - 1] && -1 !== ['+', '-'].indexOf(t) ? (e[e.length - 1] = t, p = !0, e) : p ? (e[e.length - 1] += t, p = !1, e) : e.concat(t)
            }, []).map(function (e) {
                return q(e, n, t, o)
            })
        }), a.forEach(function (e, t) {
            e.forEach(function (o, i) {
                R(o) && (n[t] += o * ('-' === e[i - 1] ? -1 : 1))
            })
        }), n
    }

    for (var z = Math.min, V = Math.floor, _ = Math.max, X = ['native code', '[object MutationObserverConstructor]'], Q = function (e) {
        return X.some(function (t) {
            return -1 < (e || '').toString().indexOf(t)
        })
    }, J = 'undefined' != typeof window, Z = ['Edge', 'Trident', 'Firefox'], $ = 0, ee = 0; ee < Z.length; ee += 1) if (J && 0 <= navigator.userAgent.indexOf(Z[ee])) {
        $ = 1;
        break
    }
    var i, te = J && Q(window.MutationObserver), oe = te ? function (e) {
            var t = !1, o = 0, i = document.createElement('span'), n = new MutationObserver(function () {
                e(), t = !1
            });
            return n.observe(i, {attributes: !0}), function () {
                t || (t = !0, i.setAttribute('x-index', o), ++o)
            }
        } : function (e) {
            var t = !1;
            return function () {
                t || (t = !0, setTimeout(function () {
                    t = !1, e()
                }, $))
            }
        }, ie = function () {
            return void 0 == i && (i = -1 !== navigator.appVersion.indexOf('MSIE 10')), i
        }, ne = function (e, t) {
            if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
        }, re = function () {
            function e(e, t) {
                for (var o, n = 0; n < t.length; n++) o = t[n], o.enumerable = o.enumerable || !1, o.configurable = !0, 'value' in o && (o.writable = !0), Object.defineProperty(e, o.key, o)
            }

            return function (t, o, i) {
                return o && e(t.prototype, o), i && e(t, i), t
            }
        }(), pe = function (e, t, o) {
            return t in e ? Object.defineProperty(e, t, {
                value: o,
                enumerable: !0,
                configurable: !0,
                writable: !0
            }) : e[t] = o, e
        }, se = Object.assign || function (e) {
            for (var t, o = 1; o < arguments.length; o++) for (var i in t = arguments[o], t) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
            return e
        },
        de = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'],
        ae = de.slice(3), fe = {FLIP: 'flip', CLOCKWISE: 'clockwise', COUNTERCLOCKWISE: 'counterclockwise'},
        le = function () {
            function t(o, i) {
                var n = this, r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};
                ne(this, t), this.scheduleUpdate = function () {
                    return requestAnimationFrame(n.update)
                }, this.update = oe(this.update.bind(this)), this.options = se({}, t.Defaults, r), this.state = {
                    isDestroyed: !1,
                    isCreated: !1,
                    scrollParents: []
                }, this.reference = o.jquery ? o[0] : o, this.popper = i.jquery ? i[0] : i, this.options.modifiers = {}, Object.keys(se({}, t.Defaults.modifiers, r.modifiers)).forEach(function (e) {
                    n.options.modifiers[e] = se({}, t.Defaults.modifiers[e] || {}, r.modifiers ? r.modifiers[e] : {})
                }), this.modifiers = Object.keys(this.options.modifiers).map(function (e) {
                    return se({name: e}, n.options.modifiers[e])
                }).sort(function (e, t) {
                    return e.order - t.order
                }), this.modifiers.forEach(function (t) {
                    t.enabled && e(t.onLoad) && t.onLoad(n.reference, n.popper, n.options, t, n.state)
                }), this.update();
                var p = this.options.eventsEnabled;
                p && this.enableEventListeners(), this.state.eventsEnabled = p
            }

            return re(t, [{
                key: 'update', value: function () {
                    return k.call(this)
                }
            }, {
                key: 'destroy', value: function () {
                    return D.call(this)
                }
            }, {
                key: 'enableEventListeners', value: function () {
                    return A.call(this)
                }
            }, {
                key: 'disableEventListeners', value: function () {
                    return I.call(this)
                }
            }]), t
        }();
    return le.Utils = ('undefined' == typeof window ? global : window).PopperUtils, le.placements = de, le.Defaults = {
        placement: 'bottom', eventsEnabled: !0, removeOnDestroy: !1, onCreate: function () {
        }, onUpdate: function () {
        }, modifiers: {
            shift: {
                order: 100, enabled: !0, fn: function (e) {
                    var t = e.placement, o = t.split('-')[0], i = t.split('-')[1];
                    if (i) {
                        var n = e.offsets, r = n.reference, p = n.popper, s = -1 !== ['bottom', 'top'].indexOf(o),
                            d = s ? 'left' : 'top', a = s ? 'width' : 'height',
                            f = {start: pe({}, d, r[d]), end: pe({}, d, r[d] + r[a] - p[a])};
                        e.offsets.popper = se({}, p, f[i])
                    }
                    return e
                }
            }, offset: {
                order: 200, enabled: !0, fn: function (e, t) {
                    var o, i = t.offset, n = e.placement, r = e.offsets, p = r.popper, s = r.reference,
                        d = n.split('-')[0];
                    return o = R(+i) ? [+i, 0] : G(i, p, s, d), 'left' === d ? (p.top += o[0], p.left -= o[1]) : 'right' === d ? (p.top += o[0], p.left += o[1]) : 'top' === d ? (p.left += o[0], p.top -= o[1]) : 'bottom' === d && (p.left += o[0], p.top += o[1]), e.popper = p, e
                }, offset: 0
            }, preventOverflow: {
                order: 300, enabled: !0, fn: function (e, t) {
                    var o = t.boundariesElement || r(e.instance.popper);
                    e.instance.reference === o && (o = r(o));
                    var i = w(e.instance.popper, e.instance.reference, t.padding, o);
                    t.boundaries = i;
                    var n = t.priority, p = e.offsets.popper, s = {
                        primary: function (e) {
                            var o = p[e];
                            return p[e] < i[e] && !t.escapeWithReference && (o = _(p[e], i[e])), pe({}, e, o)
                        }, secondary: function (e) {
                            var o = 'right' === e ? 'left' : 'top', n = p[o];
                            return p[e] > i[e] && !t.escapeWithReference && (n = z(p[o], i[e] - ('right' === e ? p.width : p.height))), pe({}, o, n)
                        }
                    };
                    return n.forEach(function (e) {
                        var t = -1 === ['left', 'top'].indexOf(e) ? 'secondary' : 'primary';
                        p = se({}, p, s[t](e))
                    }), e.offsets.popper = p, e
                }, priority: ['left', 'right', 'top', 'bottom'], padding: 5, boundariesElement: 'scrollParent'
            }, keepTogether: {
                order: 400, enabled: !0, fn: function (e) {
                    var t = e.offsets, o = t.popper, i = t.reference, n = e.placement.split('-')[0], r = V,
                        p = -1 !== ['top', 'bottom'].indexOf(n), s = p ? 'right' : 'bottom', d = p ? 'left' : 'top',
                        a = p ? 'width' : 'height';
                    return o[s] < r(i[d]) && (e.offsets.popper[d] = r(i[d]) - o[a]), o[d] > r(i[s]) && (e.offsets.popper[d] = r(i[s])), e
                }
            }, arrow: {
                order: 500, enabled: !0, fn: function (e, t) {
                    if (!F(e.instance.modifiers, 'arrow', 'keepTogether')) return e;
                    var o = t.element;
                    if ('string' == typeof o) {
                        if (o = e.instance.popper.querySelector(o), !o) return e;
                    } else if (!e.instance.popper.contains(o)) return console.warn('WARNING: `arrow.element` must be child of its popper element!'), e;
                    var i = e.placement.split('-')[0], n = e.offsets, r = n.popper, p = n.reference,
                        s = -1 !== ['left', 'right'].indexOf(i), d = s ? 'height' : 'width', a = s ? 'top' : 'left',
                        f = s ? 'left' : 'top', l = s ? 'bottom' : 'right', m = O(o)[d];
                    p[l] - m < r[a] && (e.offsets.popper[a] -= r[a] - (p[l] - m)), p[a] + m > r[l] && (e.offsets.popper[a] += p[a] + m - r[l]);
                    var h = p[a] + p[d] / 2 - m / 2, g = h - c(e.offsets.popper)[a];
                    return g = _(z(r[d] - m, g), 0), e.arrowElement = o, e.offsets.arrow = {}, e.offsets.arrow[a] = Math.round(g), e.offsets.arrow[f] = '', e
                }, element: '[x-arrow]'
            }, flip: {
                order: 600, enabled: !0, fn: function (e, t) {
                    if (W(e.instance.modifiers, 'inner')) return e;
                    if (e.flipped && e.placement === e.originalPlacement) return e;
                    var o = w(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement),
                        i = e.placement.split('-')[0], n = L(i), r = e.placement.split('-')[1] || '', p = [];
                    switch (t.behavior) {
                        case fe.FLIP:
                            p = [i, n];
                            break;
                        case fe.CLOCKWISE:
                            p = K(i);
                            break;
                        case fe.COUNTERCLOCKWISE:
                            p = K(i, !0);
                            break;
                        default:
                            p = t.behavior;
                    }
                    return p.forEach(function (s, d) {
                        if (i !== s || p.length === d + 1) return e;
                        i = e.placement.split('-')[0], n = L(i);
                        var a = e.offsets.popper, f = e.offsets.reference, l = V,
                            m = 'left' === i && l(a.right) > l(f.left) || 'right' === i && l(a.left) < l(f.right) || 'top' === i && l(a.bottom) > l(f.top) || 'bottom' === i && l(a.top) < l(f.bottom),
                            h = l(a.left) < l(o.left), c = l(a.right) > l(o.right), g = l(a.top) < l(o.top),
                            u = l(a.bottom) > l(o.bottom),
                            b = 'left' === i && h || 'right' === i && c || 'top' === i && g || 'bottom' === i && u,
                            y = -1 !== ['top', 'bottom'].indexOf(i),
                            w = !!t.flipVariations && (y && 'start' === r && h || y && 'end' === r && c || !y && 'start' === r && g || !y && 'end' === r && u);
                        (m || b || w) && (e.flipped = !0, (m || b) && (i = p[d + 1]), w && (r = j(r)), e.placement = i + (r ? '-' + r : ''), e.offsets.popper = se({}, e.offsets.popper, S(e.instance.popper, e.offsets.reference, e.placement)), e = N(e.instance.modifiers, e, 'flip'))
                    }), e
                }, behavior: 'flip', padding: 5, boundariesElement: 'viewport'
            }, inner: {
                order: 700, enabled: !1, fn: function (e) {
                    var t = e.placement, o = t.split('-')[0], i = e.offsets, n = i.popper, r = i.reference,
                        p = -1 !== ['left', 'right'].indexOf(o), s = -1 === ['top', 'left'].indexOf(o);
                    return n[p ? 'left' : 'top'] = r[t] - (s ? n[p ? 'width' : 'height'] : 0), e.placement = L(t), e.offsets.popper = c(n), e
                }
            }, hide: {
                order: 800, enabled: !0, fn: function (e) {
                    if (!F(e.instance.modifiers, 'hide', 'preventOverflow')) return e;
                    var t = e.offsets.reference, o = T(e.instance.modifiers, function (e) {
                        return 'preventOverflow' === e.name
                    }).boundaries;
                    if (t.bottom < o.top || t.left > o.right || t.top > o.bottom || t.right < o.left) {
                        if (!0 === e.hide) return e;
                        e.hide = !0, e.attributes['x-out-of-boundaries'] = ''
                    } else {
                        if (!1 === e.hide) return e;
                        e.hide = !1, e.attributes['x-out-of-boundaries'] = !1
                    }
                    return e
                }
            }, computeStyle: {
                order: 850, enabled: !0, fn: function (e, t) {
                    var o = t.x, i = t.y, n = e.offsets.popper, p = T(e.instance.modifiers, function (e) {
                        return 'applyStyle' === e.name
                    }).gpuAcceleration;
                    void 0 !== p && console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
                    var s, d, a = void 0 === p ? t.gpuAcceleration : p, f = r(e.instance.popper), l = g(f),
                        m = {position: n.position},
                        h = {left: V(n.left), top: V(n.top), bottom: V(n.bottom), right: V(n.right)},
                        c = 'bottom' === o ? 'top' : 'bottom', u = 'right' === i ? 'left' : 'right', b = B('transform');
                    if (d = 'bottom' == c ? -l.height + h.bottom : h.top, s = 'right' == u ? -l.width + h.right : h.left, a && b) m[b] = 'translate3d(' + s + 'px, ' + d + 'px, 0)', m[c] = 0, m[u] = 0, m.willChange = 'transform'; else {
                        var y = 'bottom' == c ? -1 : 1, w = 'right' == u ? -1 : 1;
                        m[c] = d * y, m[u] = s * w, m.willChange = c + ', ' + u
                    }
                    var v = {"x-placement": e.placement};
                    return e.attributes = se({}, v, e.attributes), e.styles = se({}, m, e.styles), e
                }, gpuAcceleration: !0, x: 'bottom', y: 'right'
            }, applyStyle: {
                order: 900, enabled: !0, fn: function (e) {
                    return U(e.instance.popper, e.styles), Y(e.instance.popper, e.attributes), e.offsets.arrow && U(e.arrowElement, e.offsets.arrow), e
                }, onLoad: function (e, t, o, i, n) {
                    var r = x(n, t, e),
                        p = E(o.placement, r, t, e, o.modifiers.flip.boundariesElement, o.modifiers.flip.padding);
                    return t.setAttribute('x-placement', p), U(t, {position: 'absolute'}), o
                }, gpuAcceleration: void 0
            }
        }
    }, le
});


/*!
 * Bootstrap v4.0.0-beta (https://getbootstrap.com)
 * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
if ("undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");
!function (t) {
    var e = jQuery.fn.jquery.split(" ")[0].split(".");
    if (e[0] < 2 && e[1] < 9 || 1 == e[0] && 9 == e[1] && e[2] < 1 || e[0] >= 4) throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")
}(), function () {
    function t(t, e) {
        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
        return !e || "object" != typeof e && "function" != typeof e ? t : e
    }

    function e(t, e) {
        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                enumerable: !1,
                writable: !0,
                configurable: !0
            }
        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
    }

    function n(t, e) {
        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
    }

    var i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
        return typeof t
    } : function (t) {
        return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
    }, o = function () {
        function t(t, e) {
            for (var n = 0; n < e.length; n++) {
                var i = e[n];
                i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i)
            }
        }

        return function (e, n, i) {
            return n && t(e.prototype, n), i && t(e, i), e
        }
    }(), r = function (t) {
        function e(t) {
            return {}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
        }

        function n(t) {
            return (t[0] || t).nodeType
        }

        function i() {
            return {
                bindType: s.end, delegateType: s.end, handle: function (e) {
                    if (t(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
                }
            }
        }

        function o() {
            if (window.QUnit) return !1;
            var t = document.createElement("bootstrap");
            for (var e in a) if (void 0 !== t.style[e]) return {end: a[e]};
            return !1
        }

        function r(e) {
            var n = this, i = !1;
            return t(this).one(l.TRANSITION_END, function () {
                i = !0
            }), setTimeout(function () {
                i || l.triggerTransitionEnd(n)
            }, e), this
        }

        var s = !1, a = {
            WebkitTransition: "webkitTransitionEnd",
            MozTransition: "transitionend",
            OTransition: "oTransitionEnd otransitionend",
            transition: "transitionend"
        }, l = {
            TRANSITION_END: "bsTransitionEnd", getUID: function (t) {
                do {
                    t += ~~(1e6 * Math.random())
                } while (document.getElementById(t));
                return t
            }, getSelectorFromElement: function (e) {
                var n = e.getAttribute("data-target");
                n && "#" !== n || (n = e.getAttribute("href") || "");
                try {
                    return t(n).length > 0 ? n : null
                } catch (t) {
                    return null
                }
            }, reflow: function (t) {
                return t.offsetHeight
            }, triggerTransitionEnd: function (e) {
                t(e).trigger(s.end)
            }, supportsTransitionEnd: function () {
                return Boolean(s)
            }, typeCheckConfig: function (t, i, o) {
                for (var r in o) if (o.hasOwnProperty(r)) {
                    var s = o[r], a = i[r], l = a && n(a) ? "element" : e(a);
                    if (!new RegExp(s).test(l)) throw new Error(t.toUpperCase() + ': Option "' + r + '" provided type "' + l + '" but expected type "' + s + '".')
                }
            }
        };
        return s = o(), t.fn.emulateTransitionEnd = r, l.supportsTransitionEnd() && (t.event.special[l.TRANSITION_END] = i()), l
    }(jQuery), s = (function (t) {
        var e = "alert", i = t.fn[e], s = {DISMISS: '[data-dismiss="alert"]'},
            a = {CLOSE: "close.bs.alert", CLOSED: "closed.bs.alert", CLICK_DATA_API: "click.bs.alert.data-api"},
            l = {ALERT: "alert", FADE: "fade", SHOW: "show"}, h = function () {
                function e(t) {
                    n(this, e), this._element = t
                }

                return e.prototype.close = function (t) {
                    t = t || this._element;
                    var e = this._getRootElement(t);
                    this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e)
                }, e.prototype.dispose = function () {
                    t.removeData(this._element, "bs.alert"), this._element = null
                }, e.prototype._getRootElement = function (e) {
                    var n = r.getSelectorFromElement(e), i = !1;
                    return n && (i = t(n)[0]), i || (i = t(e).closest("." + l.ALERT)[0]), i
                }, e.prototype._triggerCloseEvent = function (e) {
                    var n = t.Event(a.CLOSE);
                    return t(e).trigger(n), n
                }, e.prototype._removeElement = function (e) {
                    var n = this;
                    t(e).removeClass(l.SHOW), r.supportsTransitionEnd() && t(e).hasClass(l.FADE) ? t(e).one(r.TRANSITION_END, function (t) {
                        return n._destroyElement(e, t)
                    }).emulateTransitionEnd(150) : this._destroyElement(e)
                }, e.prototype._destroyElement = function (e) {
                    t(e).detach().trigger(a.CLOSED).remove()
                }, e._jQueryInterface = function (n) {
                    return this.each(function () {
                        var i = t(this), o = i.data("bs.alert");
                        o || (o = new e(this), i.data("bs.alert", o)), "close" === n && o[n](this)
                    })
                }, e._handleDismiss = function (t) {
                    return function (e) {
                        e && e.preventDefault(), t.close(this)
                    }
                }, o(e, null, [{
                    key: "VERSION", get: function () {
                        return "4.0.0-beta"
                    }
                }]), e
            }();
        t(document).on(a.CLICK_DATA_API, s.DISMISS, h._handleDismiss(new h)), t.fn[e] = h._jQueryInterface, t.fn[e].Constructor = h, t.fn[e].noConflict = function () {
            return t.fn[e] = i, h._jQueryInterface
        }
    }(jQuery), function (t) {
        var e = "button", i = t.fn[e], r = {ACTIVE: "active", BUTTON: "btn", FOCUS: "focus"}, s = {
            DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
            DATA_TOGGLE: '[data-toggle="buttons"]',
            INPUT: "input",
            ACTIVE: ".active",
            BUTTON: ".btn"
        }, a = {
            CLICK_DATA_API: "click.bs.button.data-api",
            FOCUS_BLUR_DATA_API: "focus.bs.button.data-api blur.bs.button.data-api"
        }, l = function () {
            function e(t) {
                n(this, e), this._element = t
            }

            return e.prototype.toggle = function () {
                var e = !0, n = !0, i = t(this._element).closest(s.DATA_TOGGLE)[0];
                if (i) {
                    var o = t(this._element).find(s.INPUT)[0];
                    if (o) {
                        if ("radio" === o.type) if (o.checked && t(this._element).hasClass(r.ACTIVE)) e = !1; else {
                            var a = t(i).find(s.ACTIVE)[0];
                            a && t(a).removeClass(r.ACTIVE)
                        }
                        if (e) {
                            if (o.hasAttribute("disabled") || i.hasAttribute("disabled") || o.classList.contains("disabled") || i.classList.contains("disabled")) return;
                            o.checked = !t(this._element).hasClass(r.ACTIVE), t(o).trigger("change")
                        }
                        o.focus(), n = !1
                    }
                }
                n && this._element.setAttribute("aria-pressed", !t(this._element).hasClass(r.ACTIVE)), e && t(this._element).toggleClass(r.ACTIVE)
            }, e.prototype.dispose = function () {
                t.removeData(this._element, "bs.button"), this._element = null
            }, e._jQueryInterface = function (n) {
                return this.each(function () {
                    var i = t(this).data("bs.button");
                    i || (i = new e(this), t(this).data("bs.button", i)), "toggle" === n && i[n]()
                })
            }, o(e, null, [{
                key: "VERSION", get: function () {
                    return "4.0.0-beta"
                }
            }]), e
        }();
        t(document).on(a.CLICK_DATA_API, s.DATA_TOGGLE_CARROT, function (e) {
            e.preventDefault();
            var n = e.target;
            t(n).hasClass(r.BUTTON) || (n = t(n).closest(s.BUTTON)), l._jQueryInterface.call(t(n), "toggle")
        }).on(a.FOCUS_BLUR_DATA_API, s.DATA_TOGGLE_CARROT, function (e) {
            var n = t(e.target).closest(s.BUTTON)[0];
            t(n).toggleClass(r.FOCUS, /^focus(in)?$/.test(e.type))
        }), t.fn[e] = l._jQueryInterface, t.fn[e].Constructor = l, t.fn[e].noConflict = function () {
            return t.fn[e] = i, l._jQueryInterface
        }
    }(jQuery), function (t) {
        var e = "carousel", s = "bs.carousel", a = "." + s, l = t.fn[e],
            h = {interval: 5e3, keyboard: !0, slide: !1, pause: "hover", wrap: !0}, c = {
                interval: "(number|boolean)",
                keyboard: "boolean",
                slide: "(boolean|string)",
                pause: "(string|boolean)",
                wrap: "boolean"
            }, u = {NEXT: "next", PREV: "prev", LEFT: "left", RIGHT: "right"}, d = {
                SLIDE: "slide" + a,
                SLID: "slid" + a,
                KEYDOWN: "keydown" + a,
                MOUSEENTER: "mouseenter" + a,
                MOUSELEAVE: "mouseleave" + a,
                TOUCHEND: "touchend" + a,
                LOAD_DATA_API: "load.bs.carousel.data-api",
                CLICK_DATA_API: "click.bs.carousel.data-api"
            }, f = {
                CAROUSEL: "carousel",
                ACTIVE: "active",
                SLIDE: "slide",
                RIGHT: "carousel-item-right",
                LEFT: "carousel-item-left",
                NEXT: "carousel-item-next",
                PREV: "carousel-item-prev",
                ITEM: "carousel-item"
            }, p = {
                ACTIVE: ".active",
                ACTIVE_ITEM: ".active.carousel-item",
                ITEM: ".carousel-item",
                NEXT_PREV: ".carousel-item-next, .carousel-item-prev",
                INDICATORS: ".carousel-indicators",
                DATA_SLIDE: "[data-slide], [data-slide-to]",
                DATA_RIDE: '[data-ride="carousel"]'
            }, _ = function () {
                function l(e, i) {
                    n(this, l), this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this._config = this._getConfig(i), this._element = t(e)[0], this._indicatorsElement = t(this._element).find(p.INDICATORS)[0], this._addEventListeners()
                }

                return l.prototype.next = function () {
                    this._isSliding || this._slide(u.NEXT)
                }, l.prototype.nextWhenVisible = function () {
                    document.hidden || this.next()
                }, l.prototype.prev = function () {
                    this._isSliding || this._slide(u.PREV)
                }, l.prototype.pause = function (e) {
                    e || (this._isPaused = !0), t(this._element).find(p.NEXT_PREV)[0] && r.supportsTransitionEnd() && (r.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null
                }, l.prototype.cycle = function (t) {
                    t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval))
                }, l.prototype.to = function (e) {
                    var n = this;
                    this._activeElement = t(this._element).find(p.ACTIVE_ITEM)[0];
                    var i = this._getItemIndex(this._activeElement);
                    if (!(e > this._items.length - 1 || e < 0)) if (this._isSliding) t(this._element).one(d.SLID, function () {
                        return n.to(e)
                    }); else {
                        if (i === e) return this.pause(), void this.cycle();
                        var o = e > i ? u.NEXT : u.PREV;
                        this._slide(o, this._items[e])
                    }
                }, l.prototype.dispose = function () {
                    t(this._element).off(a), t.removeData(this._element, s), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null
                }, l.prototype._getConfig = function (n) {
                    return n = t.extend({}, h, n), r.typeCheckConfig(e, n, c), n
                }, l.prototype._addEventListeners = function () {
                    var e = this;
                    this._config.keyboard && t(this._element).on(d.KEYDOWN, function (t) {
                        return e._keydown(t)
                    }), "hover" === this._config.pause && (t(this._element).on(d.MOUSEENTER, function (t) {
                        return e.pause(t)
                    }).on(d.MOUSELEAVE, function (t) {
                        return e.cycle(t)
                    }), "ontouchstart" in document.documentElement && t(this._element).on(d.TOUCHEND, function () {
                        e.pause(), e.touchTimeout && clearTimeout(e.touchTimeout), e.touchTimeout = setTimeout(function (t) {
                            return e.cycle(t)
                        }, 500 + e._config.interval)
                    }))
                }, l.prototype._keydown = function (t) {
                    if (!/input|textarea/i.test(t.target.tagName)) switch (t.which) {
                        case 37:
                            t.preventDefault(), this.prev();
                            break;
                        case 39:
                            t.preventDefault(), this.next();
                            break;
                        default:
                            return
                    }
                }, l.prototype._getItemIndex = function (e) {
                    return this._items = t.makeArray(t(e).parent().find(p.ITEM)), this._items.indexOf(e)
                }, l.prototype._getItemByDirection = function (t, e) {
                    var n = t === u.NEXT, i = t === u.PREV, o = this._getItemIndex(e), r = this._items.length - 1;
                    if ((i && 0 === o || n && o === r) && !this._config.wrap) return e;
                    var s = (o + (t === u.PREV ? -1 : 1)) % this._items.length;
                    return -1 === s ? this._items[this._items.length - 1] : this._items[s]
                }, l.prototype._triggerSlideEvent = function (e, n) {
                    var i = this._getItemIndex(e), o = this._getItemIndex(t(this._element).find(p.ACTIVE_ITEM)[0]),
                        r = t.Event(d.SLIDE, {relatedTarget: e, direction: n, from: o, to: i});
                    return t(this._element).trigger(r), r
                }, l.prototype._setActiveIndicatorElement = function (e) {
                    if (this._indicatorsElement) {
                        t(this._indicatorsElement).find(p.ACTIVE).removeClass(f.ACTIVE);
                        var n = this._indicatorsElement.children[this._getItemIndex(e)];
                        n && t(n).addClass(f.ACTIVE)
                    }
                }, l.prototype._slide = function (e, n) {
                    var i = this, o = t(this._element).find(p.ACTIVE_ITEM)[0], s = this._getItemIndex(o),
                        a = n || o && this._getItemByDirection(e, o), l = this._getItemIndex(a),
                        h = Boolean(this._interval), c = void 0, _ = void 0, g = void 0;
                    if (e === u.NEXT ? (c = f.LEFT, _ = f.NEXT, g = u.LEFT) : (c = f.RIGHT, _ = f.PREV, g = u.RIGHT), a && t(a).hasClass(f.ACTIVE)) this._isSliding = !1; else if (!this._triggerSlideEvent(a, g).isDefaultPrevented() && o && a) {
                        this._isSliding = !0, h && this.pause(), this._setActiveIndicatorElement(a);
                        var m = t.Event(d.SLID, {relatedTarget: a, direction: g, from: s, to: l});
                        r.supportsTransitionEnd() && t(this._element).hasClass(f.SLIDE) ? (t(a).addClass(_), r.reflow(a), t(o).addClass(c), t(a).addClass(c), t(o).one(r.TRANSITION_END, function () {
                            t(a).removeClass(c + " " + _).addClass(f.ACTIVE), t(o).removeClass(f.ACTIVE + " " + _ + " " + c), i._isSliding = !1, setTimeout(function () {
                                return t(i._element).trigger(m)
                            }, 0)
                        }).emulateTransitionEnd(600)) : (t(o).removeClass(f.ACTIVE), t(a).addClass(f.ACTIVE), this._isSliding = !1, t(this._element).trigger(m)), h && this.cycle()
                    }
                }, l._jQueryInterface = function (e) {
                    return this.each(function () {
                        var n = t(this).data(s), o = t.extend({}, h, t(this).data());
                        "object" === (void 0 === e ? "undefined" : i(e)) && t.extend(o, e);
                        var r = "string" == typeof e ? e : o.slide;
                        if (n || (n = new l(this, o), t(this).data(s, n)), "number" == typeof e) n.to(e); else if ("string" == typeof r) {
                            if (void 0 === n[r]) throw new Error('No method named "' + r + '"');
                            n[r]()
                        } else o.interval && (n.pause(), n.cycle())
                    })
                }, l._dataApiClickHandler = function (e) {
                    var n = r.getSelectorFromElement(this);
                    if (n) {
                        var i = t(n)[0];
                        if (i && t(i).hasClass(f.CAROUSEL)) {
                            var o = t.extend({}, t(i).data(), t(this).data()), a = this.getAttribute("data-slide-to");
                            a && (o.interval = !1), l._jQueryInterface.call(t(i), o), a && t(i).data(s).to(a), e.preventDefault()
                        }
                    }
                }, o(l, null, [{
                    key: "VERSION", get: function () {
                        return "4.0.0-beta"
                    }
                }, {
                    key: "Default", get: function () {
                        return h
                    }
                }]), l
            }();
        t(document).on(d.CLICK_DATA_API, p.DATA_SLIDE, _._dataApiClickHandler), t(window).on(d.LOAD_DATA_API, function () {
            t(p.DATA_RIDE).each(function () {
                var e = t(this);
                _._jQueryInterface.call(e, e.data())
            })
        }), t.fn[e] = _._jQueryInterface, t.fn[e].Constructor = _, t.fn[e].noConflict = function () {
            return t.fn[e] = l, _._jQueryInterface
        }
    }(jQuery), function (t) {
        var e = "collapse", s = "bs.collapse", a = t.fn[e], l = {toggle: !0, parent: ""},
            h = {toggle: "boolean", parent: "string"}, c = {
                SHOW: "show.bs.collapse",
                SHOWN: "shown.bs.collapse",
                HIDE: "hide.bs.collapse",
                HIDDEN: "hidden.bs.collapse",
                CLICK_DATA_API: "click.bs.collapse.data-api"
            }, u = {SHOW: "show", COLLAPSE: "collapse", COLLAPSING: "collapsing", COLLAPSED: "collapsed"},
            d = {WIDTH: "width", HEIGHT: "height"},
            f = {ACTIVES: ".show, .collapsing", DATA_TOGGLE: '[data-toggle="collapse"]'}, p = function () {
                function a(e, i) {
                    n(this, a), this._isTransitioning = !1, this._element = e, this._config = this._getConfig(i), this._triggerArray = t.makeArray(t('[data-toggle="collapse"][href="#' + e.id + '"],[data-toggle="collapse"][data-target="#' + e.id + '"]'));
                    for (var o = t(f.DATA_TOGGLE), s = 0; s < o.length; s++) {
                        var l = o[s], h = r.getSelectorFromElement(l);
                        null !== h && t(h).filter(e).length > 0 && this._triggerArray.push(l)
                    }
                    this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle()
                }

                return a.prototype.toggle = function () {
                    t(this._element).hasClass(u.SHOW) ? this.hide() : this.show()
                }, a.prototype.show = function () {
                    var e = this;
                    if (!this._isTransitioning && !t(this._element).hasClass(u.SHOW)) {
                        var n = void 0, i = void 0;
                        if (this._parent && ((n = t.makeArray(t(this._parent).children().children(f.ACTIVES))).length || (n = null)), !(n && (i = t(n).data(s)) && i._isTransitioning)) {
                            var o = t.Event(c.SHOW);
                            if (t(this._element).trigger(o), !o.isDefaultPrevented()) {
                                n && (a._jQueryInterface.call(t(n), "hide"), i || t(n).data(s, null));
                                var l = this._getDimension();
                                t(this._element).removeClass(u.COLLAPSE).addClass(u.COLLAPSING), this._element.style[l] = 0, this._triggerArray.length && t(this._triggerArray).removeClass(u.COLLAPSED).attr("aria-expanded", !0), this.setTransitioning(!0);
                                var h = function () {
                                    t(e._element).removeClass(u.COLLAPSING).addClass(u.COLLAPSE).addClass(u.SHOW), e._element.style[l] = "", e.setTransitioning(!1), t(e._element).trigger(c.SHOWN)
                                };
                                if (r.supportsTransitionEnd()) {
                                    var d = "scroll" + (l[0].toUpperCase() + l.slice(1));
                                    t(this._element).one(r.TRANSITION_END, h).emulateTransitionEnd(600), this._element.style[l] = this._element[d] + "px"
                                } else h()
                            }
                        }
                    }
                }, a.prototype.hide = function () {
                    var e = this;
                    if (!this._isTransitioning && t(this._element).hasClass(u.SHOW)) {
                        var n = t.Event(c.HIDE);
                        if (t(this._element).trigger(n), !n.isDefaultPrevented()) {
                            var i = this._getDimension();
                            if (this._element.style[i] = this._element.getBoundingClientRect()[i] + "px", r.reflow(this._element), t(this._element).addClass(u.COLLAPSING).removeClass(u.COLLAPSE).removeClass(u.SHOW), this._triggerArray.length) for (var o = 0; o < this._triggerArray.length; o++) {
                                var s = this._triggerArray[o], a = r.getSelectorFromElement(s);
                                null !== a && (t(a).hasClass(u.SHOW) || t(s).addClass(u.COLLAPSED).attr("aria-expanded", !1))
                            }
                            this.setTransitioning(!0);
                            var l = function () {
                                e.setTransitioning(!1), t(e._element).removeClass(u.COLLAPSING).addClass(u.COLLAPSE).trigger(c.HIDDEN)
                            };
                            this._element.style[i] = "", r.supportsTransitionEnd() ? t(this._element).one(r.TRANSITION_END, l).emulateTransitionEnd(600) : l()
                        }
                    }
                }, a.prototype.setTransitioning = function (t) {
                    this._isTransitioning = t
                }, a.prototype.dispose = function () {
                    t.removeData(this._element, s), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null
                }, a.prototype._getConfig = function (n) {
                    return n = t.extend({}, l, n), n.toggle = Boolean(n.toggle), r.typeCheckConfig(e, n, h), n
                }, a.prototype._getDimension = function () {
                    return t(this._element).hasClass(d.WIDTH) ? d.WIDTH : d.HEIGHT
                }, a.prototype._getParent = function () {
                    var e = this, n = t(this._config.parent)[0],
                        i = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]';
                    return t(n).find(i).each(function (t, n) {
                        e._addAriaAndCollapsedClass(a._getTargetFromElement(n), [n])
                    }), n
                }, a.prototype._addAriaAndCollapsedClass = function (e, n) {
                    if (e) {
                        var i = t(e).hasClass(u.SHOW);
                        n.length && t(n).toggleClass(u.COLLAPSED, !i).attr("aria-expanded", i)
                    }
                }, a._getTargetFromElement = function (e) {
                    var n = r.getSelectorFromElement(e);
                    return n ? t(n)[0] : null
                }, a._jQueryInterface = function (e) {
                    return this.each(function () {
                        var n = t(this), o = n.data(s),
                            r = t.extend({}, l, n.data(), "object" === (void 0 === e ? "undefined" : i(e)) && e);
                        if (!o && r.toggle && /show|hide/.test(e) && (r.toggle = !1), o || (o = new a(this, r), n.data(s, o)), "string" == typeof e) {
                            if (void 0 === o[e]) throw new Error('No method named "' + e + '"');
                            o[e]()
                        }
                    })
                }, o(a, null, [{
                    key: "VERSION", get: function () {
                        return "4.0.0-beta"
                    }
                }, {
                    key: "Default", get: function () {
                        return l
                    }
                }]), a
            }();
        t(document).on(c.CLICK_DATA_API, f.DATA_TOGGLE, function (e) {
            /input|textarea/i.test(e.target.tagName) || e.preventDefault();
            var n = t(this), i = r.getSelectorFromElement(this);
            t(i).each(function () {
                var e = t(this), i = e.data(s) ? "toggle" : n.data();
                p._jQueryInterface.call(e, i)
            })
        }), t.fn[e] = p._jQueryInterface, t.fn[e].Constructor = p, t.fn[e].noConflict = function () {
            return t.fn[e] = a, p._jQueryInterface
        }
    }(jQuery), function (t) {
        if ("undefined" == typeof Popper) throw new Error("Bootstrap dropdown require Popper.js (https://popper.js.org)");
        var e = "dropdown", s = "bs.dropdown", a = "." + s, l = t.fn[e], h = new RegExp("38|40|27"), c = {
                HIDE: "hide" + a,
                HIDDEN: "hidden" + a,
                SHOW: "show" + a,
                SHOWN: "shown" + a,
                CLICK: "click" + a,
                CLICK_DATA_API: "click.bs.dropdown.data-api",
                KEYDOWN_DATA_API: "keydown.bs.dropdown.data-api",
                KEYUP_DATA_API: "keyup.bs.dropdown.data-api"
            }, u = {
                DISABLED: "disabled",
                SHOW: "show",
                DROPUP: "dropup",
                MENURIGHT: "dropdown-menu-right",
                MENULEFT: "dropdown-menu-left"
            }, d = {
                DATA_TOGGLE: '[data-toggle="dropdown"]',
                FORM_CHILD: ".dropdown form",
                MENU: ".dropdown-menu",
                NAVBAR_NAV: ".navbar-nav",
                VISIBLE_ITEMS: ".dropdown-menu .dropdown-item:not(.disabled)"
            }, f = {TOP: "top-start", TOPEND: "top-end", BOTTOM: "bottom-start", BOTTOMEND: "bottom-end"},
            p = {placement: f.BOTTOM, offset: 0, flip: !0},
            _ = {placement: "string", offset: "(number|string)", flip: "boolean"}, g = function () {
                function l(t, e) {
                    n(this, l), this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners()
                }

                return l.prototype.toggle = function () {
                    if (!this._element.disabled && !t(this._element).hasClass(u.DISABLED)) {
                        var e = l._getParentFromElement(this._element), n = t(this._menu).hasClass(u.SHOW);
                        if (l._clearMenus(), !n) {
                            var i = {relatedTarget: this._element}, o = t.Event(c.SHOW, i);
                            if (t(e).trigger(o), !o.isDefaultPrevented()) {
                                var r = this._element;
                                t(e).hasClass(u.DROPUP) && (t(this._menu).hasClass(u.MENULEFT) || t(this._menu).hasClass(u.MENURIGHT)) && (r = e), this._popper = new Popper(r, this._menu, this._getPopperConfig()), "ontouchstart" in document.documentElement && !t(e).closest(d.NAVBAR_NAV).length && t("body").children().on("mouseover", null, t.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), t(this._menu).toggleClass(u.SHOW), t(e).toggleClass(u.SHOW).trigger(t.Event(c.SHOWN, i))
                            }
                        }
                    }
                }, l.prototype.dispose = function () {
                    t.removeData(this._element, s), t(this._element).off(a), this._element = null, this._menu = null, null !== this._popper && this._popper.destroy(), this._popper = null
                }, l.prototype.update = function () {
                    this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate()
                }, l.prototype._addEventListeners = function () {
                    var e = this;
                    t(this._element).on(c.CLICK, function (t) {
                        t.preventDefault(), t.stopPropagation(), e.toggle()
                    })
                }, l.prototype._getConfig = function (n) {
                    var i = t(this._element).data();
                    return void 0 !== i.placement && (i.placement = f[i.placement.toUpperCase()]), n = t.extend({}, this.constructor.Default, t(this._element).data(), n), r.typeCheckConfig(e, n, this.constructor.DefaultType), n
                }, l.prototype._getMenuElement = function () {
                    if (!this._menu) {
                        var e = l._getParentFromElement(this._element);
                        this._menu = t(e).find(d.MENU)[0]
                    }
                    return this._menu
                }, l.prototype._getPlacement = function () {
                    var e = t(this._element).parent(), n = this._config.placement;
                    return e.hasClass(u.DROPUP) || this._config.placement === f.TOP ? (n = f.TOP, t(this._menu).hasClass(u.MENURIGHT) && (n = f.TOPEND)) : t(this._menu).hasClass(u.MENURIGHT) && (n = f.BOTTOMEND), n
                }, l.prototype._detectNavbar = function () {
                    return t(this._element).closest(".navbar").length > 0
                }, l.prototype._getPopperConfig = function () {
                    var t = {
                        placement: this._getPlacement(),
                        modifiers: {offset: {offset: this._config.offset}, flip: {enabled: this._config.flip}}
                    };
                    return this._inNavbar && (t.modifiers.applyStyle = {enabled: !this._inNavbar}), t
                }, l._jQueryInterface = function (e) {
                    return this.each(function () {
                        var n = t(this).data(s), o = "object" === (void 0 === e ? "undefined" : i(e)) ? e : null;
                        if (n || (n = new l(this, o), t(this).data(s, n)), "string" == typeof e) {
                            if (void 0 === n[e]) throw new Error('No method named "' + e + '"');
                            n[e]()
                        }
                    })
                }, l._clearMenus = function (e) {
                    if (!e || 3 !== e.which && ("keyup" !== e.type || 9 === e.which)) for (var n = t.makeArray(t(d.DATA_TOGGLE)), i = 0; i < n.length; i++) {
                        var o = l._getParentFromElement(n[i]), r = t(n[i]).data(s), a = {relatedTarget: n[i]};
                        if (r) {
                            var h = r._menu;
                            if (t(o).hasClass(u.SHOW) && !(e && ("click" === e.type && /input|textarea/i.test(e.target.tagName) || "keyup" === e.type && 9 === e.which) && t.contains(o, e.target))) {
                                var f = t.Event(c.HIDE, a);
                                t(o).trigger(f), f.isDefaultPrevented() || ("ontouchstart" in document.documentElement && t("body").children().off("mouseover", null, t.noop), n[i].setAttribute("aria-expanded", "false"), t(h).removeClass(u.SHOW), t(o).removeClass(u.SHOW).trigger(t.Event(c.HIDDEN, a)))
                            }
                        }
                    }
                }, l._getParentFromElement = function (e) {
                    var n = void 0, i = r.getSelectorFromElement(e);
                    return i && (n = t(i)[0]), n || e.parentNode
                }, l._dataApiKeydownHandler = function (e) {
                    if (!(!h.test(e.which) || /button/i.test(e.target.tagName) && 32 === e.which || /input|textarea/i.test(e.target.tagName) || (e.preventDefault(), e.stopPropagation(), this.disabled || t(this).hasClass(u.DISABLED)))) {
                        var n = l._getParentFromElement(this), i = t(n).hasClass(u.SHOW);
                        if ((i || 27 === e.which && 32 === e.which) && (!i || 27 !== e.which && 32 !== e.which)) {
                            var o = t(n).find(d.VISIBLE_ITEMS).get();
                            if (o.length) {
                                var r = o.indexOf(e.target);
                                38 === e.which && r > 0 && r--, 40 === e.which && r < o.length - 1 && r++, r < 0 && (r = 0), o[r].focus()
                            }
                        } else {
                            if (27 === e.which) {
                                var s = t(n).find(d.DATA_TOGGLE)[0];
                                t(s).trigger("focus")
                            }
                            t(this).trigger("click")
                        }
                    }
                }, o(l, null, [{
                    key: "VERSION", get: function () {
                        return "4.0.0-beta"
                    }
                }, {
                    key: "Default", get: function () {
                        return p
                    }
                }, {
                    key: "DefaultType", get: function () {
                        return _
                    }
                }]), l
            }();
        t(document).on(c.KEYDOWN_DATA_API, d.DATA_TOGGLE, g._dataApiKeydownHandler).on(c.KEYDOWN_DATA_API, d.MENU, g._dataApiKeydownHandler).on(c.CLICK_DATA_API + " " + c.KEYUP_DATA_API, g._clearMenus).on(c.CLICK_DATA_API, d.DATA_TOGGLE, function (e) {
            e.preventDefault(), e.stopPropagation(), g._jQueryInterface.call(t(this), "toggle")
        }).on(c.CLICK_DATA_API, d.FORM_CHILD, function (t) {
            t.stopPropagation()
        }), t.fn[e] = g._jQueryInterface, t.fn[e].Constructor = g, t.fn[e].noConflict = function () {
            return t.fn[e] = l, g._jQueryInterface
        }
    }(jQuery), function (t) {
        var e = "modal", s = ".bs.modal", a = t.fn[e], l = {backdrop: !0, keyboard: !0, focus: !0, show: !0},
            h = {backdrop: "(boolean|string)", keyboard: "boolean", focus: "boolean", show: "boolean"}, c = {
                HIDE: "hide.bs.modal",
                HIDDEN: "hidden.bs.modal",
                SHOW: "show.bs.modal",
                SHOWN: "shown.bs.modal",
                FOCUSIN: "focusin.bs.modal",
                RESIZE: "resize.bs.modal",
                CLICK_DISMISS: "click.dismiss.bs.modal",
                KEYDOWN_DISMISS: "keydown.dismiss.bs.modal",
                MOUSEUP_DISMISS: "mouseup.dismiss.bs.modal",
                MOUSEDOWN_DISMISS: "mousedown.dismiss.bs.modal",
                CLICK_DATA_API: "click.bs.modal.data-api"
            }, u = {
                SCROLLBAR_MEASURER: "modal-scrollbar-measure",
                BACKDROP: "modal-backdrop",
                OPEN: "modal-open",
                FADE: "fade",
                SHOW: "show"
            }, d = {
                DIALOG: ".modal-dialog",
                DATA_TOGGLE: '[data-toggle="modal"]',
                DATA_DISMISS: '[data-dismiss="modal"]',
                FIXED_CONTENT: ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
                NAVBAR_TOGGLER: ".navbar-toggler"
            }, f = function () {
                function a(e, i) {
                    n(this, a), this._config = this._getConfig(i), this._element = e, this._dialog = t(e).find(d.DIALOG)[0], this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._originalBodyPadding = 0, this._scrollbarWidth = 0
                }

                return a.prototype.toggle = function (t) {
                    return this._isShown ? this.hide() : this.show(t)
                }, a.prototype.show = function (e) {
                    var n = this;
                    if (!this._isTransitioning) {
                        r.supportsTransitionEnd() && t(this._element).hasClass(u.FADE) && (this._isTransitioning = !0);
                        var i = t.Event(c.SHOW, {relatedTarget: e});
                        t(this._element).trigger(i), this._isShown || i.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), t(document.body).addClass(u.OPEN), this._setEscapeEvent(), this._setResizeEvent(), t(this._element).on(c.CLICK_DISMISS, d.DATA_DISMISS, function (t) {
                            return n.hide(t)
                        }), t(this._dialog).on(c.MOUSEDOWN_DISMISS, function () {
                            t(n._element).one(c.MOUSEUP_DISMISS, function (e) {
                                t(e.target).is(n._element) && (n._ignoreBackdropClick = !0)
                            })
                        }), this._showBackdrop(function () {
                            return n._showElement(e)
                        }))
                    }
                }, a.prototype.hide = function (e) {
                    var n = this;
                    if (e && e.preventDefault(), !this._isTransitioning && this._isShown) {
                        var i = r.supportsTransitionEnd() && t(this._element).hasClass(u.FADE);
                        i && (this._isTransitioning = !0);
                        var o = t.Event(c.HIDE);
                        t(this._element).trigger(o), this._isShown && !o.isDefaultPrevented() && (this._isShown = !1, this._setEscapeEvent(), this._setResizeEvent(), t(document).off(c.FOCUSIN), t(this._element).removeClass(u.SHOW), t(this._element).off(c.CLICK_DISMISS), t(this._dialog).off(c.MOUSEDOWN_DISMISS), i ? t(this._element).one(r.TRANSITION_END, function (t) {
                            return n._hideModal(t)
                        }).emulateTransitionEnd(300) : this._hideModal())
                    }
                }, a.prototype.dispose = function () {
                    t.removeData(this._element, "bs.modal"), t(window, document, this._element, this._backdrop).off(s), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._scrollbarWidth = null
                }, a.prototype.handleUpdate = function () {
                    this._adjustDialog()
                }, a.prototype._getConfig = function (n) {
                    return n = t.extend({}, l, n), r.typeCheckConfig(e, n, h), n
                }, a.prototype._showElement = function (e) {
                    var n = this, i = r.supportsTransitionEnd() && t(this._element).hasClass(u.FADE);
                    this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.scrollTop = 0, i && r.reflow(this._element), t(this._element).addClass(u.SHOW), this._config.focus && this._enforceFocus();
                    var o = t.Event(c.SHOWN, {relatedTarget: e}), s = function () {
                        n._config.focus && n._element.focus(), n._isTransitioning = !1, t(n._element).trigger(o)
                    };
                    i ? t(this._dialog).one(r.TRANSITION_END, s).emulateTransitionEnd(300) : s()
                }, a.prototype._enforceFocus = function () {
                    var e = this;
                    t(document).off(c.FOCUSIN).on(c.FOCUSIN, function (n) {
                        document === n.target || e._element === n.target || t(e._element).has(n.target).length || e._element.focus()
                    })
                }, a.prototype._setEscapeEvent = function () {
                    var e = this;
                    this._isShown && this._config.keyboard ? t(this._element).on(c.KEYDOWN_DISMISS, function (t) {
                        27 === t.which && (t.preventDefault(), e.hide())
                    }) : this._isShown || t(this._element).off(c.KEYDOWN_DISMISS)
                }, a.prototype._setResizeEvent = function () {
                    var e = this;
                    this._isShown ? t(window).on(c.RESIZE, function (t) {
                        return e.handleUpdate(t)
                    }) : t(window).off(c.RESIZE)
                }, a.prototype._hideModal = function () {
                    var e = this;
                    this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._isTransitioning = !1, this._showBackdrop(function () {
                        t(document.body).removeClass(u.OPEN), e._resetAdjustments(), e._resetScrollbar(), t(e._element).trigger(c.HIDDEN)
                    })
                }, a.prototype._removeBackdrop = function () {
                    this._backdrop && (t(this._backdrop).remove(), this._backdrop = null)
                }, a.prototype._showBackdrop = function (e) {
                    var n = this, i = t(this._element).hasClass(u.FADE) ? u.FADE : "";
                    if (this._isShown && this._config.backdrop) {
                        var o = r.supportsTransitionEnd() && i;
                        if (this._backdrop = document.createElement("div"), this._backdrop.className = u.BACKDROP, i && t(this._backdrop).addClass(i), t(this._backdrop).appendTo(document.body), t(this._element).on(c.CLICK_DISMISS, function (t) {
                            n._ignoreBackdropClick ? n._ignoreBackdropClick = !1 : t.target === t.currentTarget && ("static" === n._config.backdrop ? n._element.focus() : n.hide())
                        }), o && r.reflow(this._backdrop), t(this._backdrop).addClass(u.SHOW), !e) return;
                        if (!o) return void e();
                        t(this._backdrop).one(r.TRANSITION_END, e).emulateTransitionEnd(150)
                    } else if (!this._isShown && this._backdrop) {
                        t(this._backdrop).removeClass(u.SHOW);
                        var s = function () {
                            n._removeBackdrop(), e && e()
                        };
                        r.supportsTransitionEnd() && t(this._element).hasClass(u.FADE) ? t(this._backdrop).one(r.TRANSITION_END, s).emulateTransitionEnd(150) : s()
                    } else e && e()
                }, a.prototype._adjustDialog = function () {
                    var t = this._element.scrollHeight > document.documentElement.clientHeight;
                    !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px")
                }, a.prototype._resetAdjustments = function () {
                    this._element.style.paddingLeft = "", this._element.style.paddingRight = ""
                }, a.prototype._checkScrollbar = function () {
                    this._isBodyOverflowing = document.body.clientWidth < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth()
                }, a.prototype._setScrollbar = function () {
                    var e = this;
                    if (this._isBodyOverflowing) {
                        t(d.FIXED_CONTENT).each(function (n, i) {
                            var o = t(i)[0].style.paddingRight, r = t(i).css("padding-right");
                            t(i).data("padding-right", o).css("padding-right", parseFloat(r) + e._scrollbarWidth + "px")
                        }), t(d.NAVBAR_TOGGLER).each(function (n, i) {
                            var o = t(i)[0].style.marginRight, r = t(i).css("margin-right");
                            t(i).data("margin-right", o).css("margin-right", parseFloat(r) + e._scrollbarWidth + "px")
                        });
                        var n = document.body.style.paddingRight, i = t("body").css("padding-right");
                        t("body").data("padding-right", n).css("padding-right", parseFloat(i) + this._scrollbarWidth + "px")
                    }
                }, a.prototype._resetScrollbar = function () {
                    t(d.FIXED_CONTENT).each(function (e, n) {
                        var i = t(n).data("padding-right");
                        void 0 !== i && t(n).css("padding-right", i).removeData("padding-right")
                    }), t(d.NAVBAR_TOGGLER).each(function (e, n) {
                        var i = t(n).data("margin-right");
                        void 0 !== i && t(n).css("margin-right", i).removeData("margin-right")
                    });
                    var e = t("body").data("padding-right");
                    void 0 !== e && t("body").css("padding-right", e).removeData("padding-right")
                }, a.prototype._getScrollbarWidth = function () {
                    var t = document.createElement("div");
                    t.className = u.SCROLLBAR_MEASURER, document.body.appendChild(t);
                    var e = t.getBoundingClientRect().width - t.clientWidth;
                    return document.body.removeChild(t), e
                }, a._jQueryInterface = function (e, n) {
                    return this.each(function () {
                        var o = t(this).data("bs.modal"),
                            r = t.extend({}, a.Default, t(this).data(), "object" === (void 0 === e ? "undefined" : i(e)) && e);
                        if (o || (o = new a(this, r), t(this).data("bs.modal", o)), "string" == typeof e) {
                            if (void 0 === o[e]) throw new Error('No method named "' + e + '"');
                            o[e](n)
                        } else r.show && o.show(n)
                    })
                }, o(a, null, [{
                    key: "VERSION", get: function () {
                        return "4.0.0-beta"
                    }
                }, {
                    key: "Default", get: function () {
                        return l
                    }
                }]), a
            }();
        t(document).on(c.CLICK_DATA_API, d.DATA_TOGGLE, function (e) {
            var n = this, i = void 0, o = r.getSelectorFromElement(this);
            o && (i = t(o)[0]);
            var s = t(i).data("bs.modal") ? "toggle" : t.extend({}, t(i).data(), t(this).data());
            "A" !== this.tagName && "AREA" !== this.tagName || e.preventDefault();
            var a = t(i).one(c.SHOW, function (e) {
                e.isDefaultPrevented() || a.one(c.HIDDEN, function () {
                    t(n).is(":visible") && n.focus()
                })
            });
            f._jQueryInterface.call(t(i), s, this)
        }), t.fn[e] = f._jQueryInterface, t.fn[e].Constructor = f, t.fn[e].noConflict = function () {
            return t.fn[e] = a, f._jQueryInterface
        }
    }(jQuery), function (t) {
        var e = "scrollspy", s = t.fn[e], a = {offset: 10, method: "auto", target: ""},
            l = {offset: "number", method: "string", target: "(string|element)"}, h = {
                ACTIVATE: "activate.bs.scrollspy",
                SCROLL: "scroll.bs.scrollspy",
                LOAD_DATA_API: "load.bs.scrollspy.data-api"
            }, c = {DROPDOWN_ITEM: "dropdown-item", DROPDOWN_MENU: "dropdown-menu", ACTIVE: "active"}, u = {
                DATA_SPY: '[data-spy="scroll"]',
                ACTIVE: ".active",
                NAV_LIST_GROUP: ".nav, .list-group",
                NAV_LINKS: ".nav-link",
                LIST_ITEMS: ".list-group-item",
                DROPDOWN: ".dropdown",
                DROPDOWN_ITEMS: ".dropdown-item",
                DROPDOWN_TOGGLE: ".dropdown-toggle"
            }, d = {OFFSET: "offset", POSITION: "position"}, f = function () {
                function s(e, i) {
                    var o = this;
                    n(this, s), this._element = e, this._scrollElement = "BODY" === e.tagName ? window : e, this._config = this._getConfig(i), this._selector = this._config.target + " " + u.NAV_LINKS + "," + this._config.target + " " + u.LIST_ITEMS + "," + this._config.target + " " + u.DROPDOWN_ITEMS, this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, t(this._scrollElement).on(h.SCROLL, function (t) {
                        return o._process(t)
                    }), this.refresh(), this._process()
                }

                return s.prototype.refresh = function () {
                    var e = this, n = this._scrollElement !== this._scrollElement.window ? d.POSITION : d.OFFSET,
                        i = "auto" === this._config.method ? n : this._config.method,
                        o = i === d.POSITION ? this._getScrollTop() : 0;
                    this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), t.makeArray(t(this._selector)).map(function (e) {
                        var n = void 0, s = r.getSelectorFromElement(e);
                        if (s && (n = t(s)[0]), n) {
                            var a = n.getBoundingClientRect();
                            if (a.width || a.height) return [t(n)[i]().top + o, s]
                        }
                        return null
                    }).filter(function (t) {
                        return t
                    }).sort(function (t, e) {
                        return t[0] - e[0]
                    }).forEach(function (t) {
                        e._offsets.push(t[0]), e._targets.push(t[1])
                    })
                }, s.prototype.dispose = function () {
                    t.removeData(this._element, "bs.scrollspy"), t(this._scrollElement).off(".bs.scrollspy"), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null
                }, s.prototype._getConfig = function (n) {
                    if ("string" != typeof (n = t.extend({}, a, n)).target) {
                        var i = t(n.target).attr("id");
                        i || (i = r.getUID(e), t(n.target).attr("id", i)), n.target = "#" + i
                    }
                    return r.typeCheckConfig(e, n, l), n
                }, s.prototype._getScrollTop = function () {
                    return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
                }, s.prototype._getScrollHeight = function () {
                    return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)
                }, s.prototype._getOffsetHeight = function () {
                    return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
                }, s.prototype._process = function () {
                    var t = this._getScrollTop() + this._config.offset, e = this._getScrollHeight(),
                        n = this._config.offset + e - this._getOffsetHeight();
                    if (this._scrollHeight !== e && this.refresh(), t >= n) {
                        var i = this._targets[this._targets.length - 1];
                        this._activeTarget !== i && this._activate(i)
                    } else {
                        if (this._activeTarget && t < this._offsets[0] && this._offsets[0] > 0) return this._activeTarget = null, void this._clear();
                        for (var o = this._offsets.length; o--;) this._activeTarget !== this._targets[o] && t >= this._offsets[o] && (void 0 === this._offsets[o + 1] || t < this._offsets[o + 1]) && this._activate(this._targets[o])
                    }
                }, s.prototype._activate = function (e) {
                    this._activeTarget = e, this._clear();
                    var n = this._selector.split(",");
                    n = n.map(function (t) {
                        return t + '[data-target="' + e + '"],' + t + '[href="' + e + '"]'
                    });
                    var i = t(n.join(","));
                    i.hasClass(c.DROPDOWN_ITEM) ? (i.closest(u.DROPDOWN).find(u.DROPDOWN_TOGGLE).addClass(c.ACTIVE), i.addClass(c.ACTIVE)) : (i.addClass(c.ACTIVE), i.parents(u.NAV_LIST_GROUP).prev(u.NAV_LINKS + ", " + u.LIST_ITEMS).addClass(c.ACTIVE)), t(this._scrollElement).trigger(h.ACTIVATE, {relatedTarget: e})
                }, s.prototype._clear = function () {
                    t(this._selector).filter(u.ACTIVE).removeClass(c.ACTIVE)
                }, s._jQueryInterface = function (e) {
                    return this.each(function () {
                        var n = t(this).data("bs.scrollspy"), o = "object" === (void 0 === e ? "undefined" : i(e)) && e;
                        if (n || (n = new s(this, o), t(this).data("bs.scrollspy", n)), "string" == typeof e) {
                            if (void 0 === n[e]) throw new Error('No method named "' + e + '"');
                            n[e]()
                        }
                    })
                }, o(s, null, [{
                    key: "VERSION", get: function () {
                        return "4.0.0-beta"
                    }
                }, {
                    key: "Default", get: function () {
                        return a
                    }
                }]), s
            }();
        t(window).on(h.LOAD_DATA_API, function () {
            for (var e = t.makeArray(t(u.DATA_SPY)), n = e.length; n--;) {
                var i = t(e[n]);
                f._jQueryInterface.call(i, i.data())
            }
        }), t.fn[e] = f._jQueryInterface, t.fn[e].Constructor = f, t.fn[e].noConflict = function () {
            return t.fn[e] = s, f._jQueryInterface
        }
    }(jQuery), function (t) {
        var e = t.fn.tab, i = {
                HIDE: "hide.bs.tab",
                HIDDEN: "hidden.bs.tab",
                SHOW: "show.bs.tab",
                SHOWN: "shown.bs.tab",
                CLICK_DATA_API: "click.bs.tab.data-api"
            }, s = {DROPDOWN_MENU: "dropdown-menu", ACTIVE: "active", DISABLED: "disabled", FADE: "fade", SHOW: "show"},
            a = {
                DROPDOWN: ".dropdown",
                NAV_LIST_GROUP: ".nav, .list-group",
                ACTIVE: ".active",
                DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
                DROPDOWN_TOGGLE: ".dropdown-toggle",
                DROPDOWN_ACTIVE_CHILD: "> .dropdown-menu .active"
            }, l = function () {
                function e(t) {
                    n(this, e), this._element = t
                }

                return e.prototype.show = function () {
                    var e = this;
                    if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && t(this._element).hasClass(s.ACTIVE) || t(this._element).hasClass(s.DISABLED))) {
                        var n = void 0, o = void 0, l = t(this._element).closest(a.NAV_LIST_GROUP)[0],
                            h = r.getSelectorFromElement(this._element);
                        l && (o = t.makeArray(t(l).find(a.ACTIVE)), o = o[o.length - 1]);
                        var c = t.Event(i.HIDE, {relatedTarget: this._element}), u = t.Event(i.SHOW, {relatedTarget: o});
                        if (o && t(o).trigger(c), t(this._element).trigger(u), !u.isDefaultPrevented() && !c.isDefaultPrevented()) {
                            h && (n = t(h)[0]), this._activate(this._element, l);
                            var d = function () {
                                var n = t.Event(i.HIDDEN, {relatedTarget: e._element}),
                                    r = t.Event(i.SHOWN, {relatedTarget: o});
                                t(o).trigger(n), t(e._element).trigger(r)
                            };
                            n ? this._activate(n, n.parentNode, d) : d()
                        }
                    }
                }, e.prototype.dispose = function () {
                    t.removeData(this._element, "bs.tab"), this._element = null
                }, e.prototype._activate = function (e, n, i) {
                    var o = this, l = t(n).find(a.ACTIVE)[0],
                        h = i && r.supportsTransitionEnd() && l && t(l).hasClass(s.FADE), c = function () {
                            return o._transitionComplete(e, l, h, i)
                        };
                    l && h ? t(l).one(r.TRANSITION_END, c).emulateTransitionEnd(150) : c(), l && t(l).removeClass(s.SHOW)
                }, e.prototype._transitionComplete = function (e, n, i, o) {
                    if (n) {
                        t(n).removeClass(s.ACTIVE);
                        var l = t(n.parentNode).find(a.DROPDOWN_ACTIVE_CHILD)[0];
                        l && t(l).removeClass(s.ACTIVE), n.setAttribute("aria-expanded", !1)
                    }
                    if (t(e).addClass(s.ACTIVE), e.setAttribute("aria-expanded", !0), i ? (r.reflow(e), t(e).addClass(s.SHOW)) : t(e).removeClass(s.FADE), e.parentNode && t(e.parentNode).hasClass(s.DROPDOWN_MENU)) {
                        var h = t(e).closest(a.DROPDOWN)[0];
                        h && t(h).find(a.DROPDOWN_TOGGLE).addClass(s.ACTIVE), e.setAttribute("aria-expanded", !0)
                    }
                    o && o()
                }, e._jQueryInterface = function (n) {
                    return this.each(function () {
                        var i = t(this), o = i.data("bs.tab");
                        if (o || (o = new e(this), i.data("bs.tab", o)), "string" == typeof n) {
                            if (void 0 === o[n]) throw new Error('No method named "' + n + '"');
                            o[n]()
                        }
                    })
                }, o(e, null, [{
                    key: "VERSION", get: function () {
                        return "4.0.0-beta"
                    }
                }]), e
            }();
        t(document).on(i.CLICK_DATA_API, a.DATA_TOGGLE, function (e) {
            e.preventDefault(), l._jQueryInterface.call(t(this), "show")
        }), t.fn.tab = l._jQueryInterface, t.fn.tab.Constructor = l, t.fn.tab.noConflict = function () {
            return t.fn.tab = e, l._jQueryInterface
        }
    }(jQuery), function (t) {
        if ("undefined" == typeof Popper) throw new Error("Bootstrap tooltips require Popper.js (https://popper.js.org)");
        var e = "tooltip", s = ".bs.tooltip", a = t.fn[e], l = new RegExp("(^|\\s)bs-tooltip\\S+", "g"), h = {
                animation: "boolean",
                template: "string",
                title: "(string|element|function)",
                trigger: "string",
                delay: "(number|object)",
                html: "boolean",
                selector: "(string|boolean)",
                placement: "(string|function)",
                offset: "(number|string)",
                container: "(string|element|boolean)",
                fallbackPlacement: "(string|array)"
            }, c = {AUTO: "auto", TOP: "top", RIGHT: "right", BOTTOM: "bottom", LEFT: "left"}, u = {
                animation: !0,
                template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',
                trigger: "hover focus",
                title: "",
                delay: 0,
                html: !1,
                selector: !1,
                placement: "top",
                offset: 0,
                container: !1,
                fallbackPlacement: "flip"
            }, d = {SHOW: "show", OUT: "out"}, f = {
                HIDE: "hide" + s,
                HIDDEN: "hidden" + s,
                SHOW: "show" + s,
                SHOWN: "shown" + s,
                INSERTED: "inserted" + s,
                CLICK: "click" + s,
                FOCUSIN: "focusin" + s,
                FOCUSOUT: "focusout" + s,
                MOUSEENTER: "mouseenter" + s,
                MOUSELEAVE: "mouseleave" + s
            }, p = {FADE: "fade", SHOW: "show"},
            _ = {TOOLTIP: ".tooltip", TOOLTIP_INNER: ".tooltip-inner", ARROW: ".arrow"},
            g = {HOVER: "hover", FOCUS: "focus", CLICK: "click", MANUAL: "manual"}, m = function () {
                function a(t, e) {
                    n(this, a), this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this.element = t, this.config = this._getConfig(e), this.tip = null, this._setListeners()
                }

                return a.prototype.enable = function () {
                    this._isEnabled = !0
                }, a.prototype.disable = function () {
                    this._isEnabled = !1
                }, a.prototype.toggleEnabled = function () {
                    this._isEnabled = !this._isEnabled
                }, a.prototype.toggle = function (e) {
                    if (e) {
                        var n = this.constructor.DATA_KEY, i = t(e.currentTarget).data(n);
                        i || (i = new this.constructor(e.currentTarget, this._getDelegateConfig()), t(e.currentTarget).data(n, i)), i._activeTrigger.click = !i._activeTrigger.click, i._isWithActiveTrigger() ? i._enter(null, i) : i._leave(null, i)
                    } else {
                        if (t(this.getTipElement()).hasClass(p.SHOW)) return void this._leave(null, this);
                        this._enter(null, this)
                    }
                }, a.prototype.dispose = function () {
                    clearTimeout(this._timeout), t.removeData(this.element, this.constructor.DATA_KEY), t(this.element).off(this.constructor.EVENT_KEY), t(this.element).closest(".modal").off("hide.bs.modal"), this.tip && t(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, null !== this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null
                }, a.prototype.show = function () {
                    var e = this;
                    if ("none" === t(this.element).css("display")) throw new Error("Please use show on visible elements");
                    var n = t.Event(this.constructor.Event.SHOW);
                    if (this.isWithContent() && this._isEnabled) {
                        t(this.element).trigger(n);
                        var i = t.contains(this.element.ownerDocument.documentElement, this.element);
                        if (n.isDefaultPrevented() || !i) return;
                        var o = this.getTipElement(), s = r.getUID(this.constructor.NAME);
                        o.setAttribute("id", s), this.element.setAttribute("aria-describedby", s), this.setContent(), this.config.animation && t(o).addClass(p.FADE);
                        var l = "function" == typeof this.config.placement ? this.config.placement.call(this, o, this.element) : this.config.placement,
                            h = this._getAttachment(l);
                        this.addAttachmentClass(h);
                        var c = !1 === this.config.container ? document.body : t(this.config.container);
                        t(o).data(this.constructor.DATA_KEY, this), t.contains(this.element.ownerDocument.documentElement, this.tip) || t(o).appendTo(c), t(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new Popper(this.element, o, {
                            placement: h,
                            modifiers: {
                                offset: {offset: this.config.offset},
                                flip: {behavior: this.config.fallbackPlacement},
                                arrow: {element: _.ARROW}
                            },
                            onCreate: function (t) {
                                t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t)
                            },
                            onUpdate: function (t) {
                                e._handlePopperPlacementChange(t)
                            }
                        }), t(o).addClass(p.SHOW), "ontouchstart" in document.documentElement && t("body").children().on("mouseover", null, t.noop);
                        var u = function () {
                            e.config.animation && e._fixTransition();
                            var n = e._hoverState;
                            e._hoverState = null, t(e.element).trigger(e.constructor.Event.SHOWN), n === d.OUT && e._leave(null, e)
                        };
                        r.supportsTransitionEnd() && t(this.tip).hasClass(p.FADE) ? t(this.tip).one(r.TRANSITION_END, u).emulateTransitionEnd(a._TRANSITION_DURATION) : u()
                    }
                }, a.prototype.hide = function (e) {
                    var n = this, i = this.getTipElement(), o = t.Event(this.constructor.Event.HIDE), s = function () {
                        n._hoverState !== d.SHOW && i.parentNode && i.parentNode.removeChild(i), n._cleanTipClass(), n.element.removeAttribute("aria-describedby"), t(n.element).trigger(n.constructor.Event.HIDDEN), null !== n._popper && n._popper.destroy(), e && e()
                    };
                    t(this.element).trigger(o), o.isDefaultPrevented() || (t(i).removeClass(p.SHOW), "ontouchstart" in document.documentElement && t("body").children().off("mouseover", null, t.noop), this._activeTrigger[g.CLICK] = !1, this._activeTrigger[g.FOCUS] = !1, this._activeTrigger[g.HOVER] = !1, r.supportsTransitionEnd() && t(this.tip).hasClass(p.FADE) ? t(i).one(r.TRANSITION_END, s).emulateTransitionEnd(150) : s(), this._hoverState = "")
                }, a.prototype.update = function () {
                    null !== this._popper && this._popper.scheduleUpdate()
                }, a.prototype.isWithContent = function () {
                    return Boolean(this.getTitle())
                }, a.prototype.addAttachmentClass = function (e) {
                    t(this.getTipElement()).addClass("bs-tooltip-" + e)
                }, a.prototype.getTipElement = function () {
                    return this.tip = this.tip || t(this.config.template)[0]
                }, a.prototype.setContent = function () {
                    var e = t(this.getTipElement());
                    this.setElementContent(e.find(_.TOOLTIP_INNER), this.getTitle()), e.removeClass(p.FADE + " " + p.SHOW)
                }, a.prototype.setElementContent = function (e, n) {
                    var o = this.config.html;
                    "object" === (void 0 === n ? "undefined" : i(n)) && (n.nodeType || n.jquery) ? o ? t(n).parent().is(e) || e.empty().append(n) : e.text(t(n).text()) : e[o ? "html" : "text"](n)
                }, a.prototype.getTitle = function () {
                    var t = this.element.getAttribute("data-original-title");
                    return t || (t = "function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), t
                }, a.prototype._getAttachment = function (t) {
                    return c[t.toUpperCase()]
                }, a.prototype._setListeners = function () {
                    var e = this;
                    this.config.trigger.split(" ").forEach(function (n) {
                        if ("click" === n) t(e.element).on(e.constructor.Event.CLICK, e.config.selector, function (t) {
                            return e.toggle(t)
                        }); else if (n !== g.MANUAL) {
                            var i = n === g.HOVER ? e.constructor.Event.MOUSEENTER : e.constructor.Event.FOCUSIN,
                                o = n === g.HOVER ? e.constructor.Event.MOUSELEAVE : e.constructor.Event.FOCUSOUT;
                            t(e.element).on(i, e.config.selector, function (t) {
                                return e._enter(t)
                            }).on(o, e.config.selector, function (t) {
                                return e._leave(t)
                            })
                        }
                        t(e.element).closest(".modal").on("hide.bs.modal", function () {
                            return e.hide()
                        })
                    }), this.config.selector ? this.config = t.extend({}, this.config, {
                        trigger: "manual",
                        selector: ""
                    }) : this._fixTitle()
                }, a.prototype._fixTitle = function () {
                    var t = i(this.element.getAttribute("data-original-title"));
                    (this.element.getAttribute("title") || "string" !== t) && (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", ""))
                }, a.prototype._enter = function (e, n) {
                    var i = this.constructor.DATA_KEY;
                    (n = n || t(e.currentTarget).data(i)) || (n = new this.constructor(e.currentTarget, this._getDelegateConfig()), t(e.currentTarget).data(i, n)), e && (n._activeTrigger["focusin" === e.type ? g.FOCUS : g.HOVER] = !0), t(n.getTipElement()).hasClass(p.SHOW) || n._hoverState === d.SHOW ? n._hoverState = d.SHOW : (clearTimeout(n._timeout), n._hoverState = d.SHOW, n.config.delay && n.config.delay.show ? n._timeout = setTimeout(function () {
                        n._hoverState === d.SHOW && n.show()
                    }, n.config.delay.show) : n.show())
                }, a.prototype._leave = function (e, n) {
                    var i = this.constructor.DATA_KEY;
                    (n = n || t(e.currentTarget).data(i)) || (n = new this.constructor(e.currentTarget, this._getDelegateConfig()), t(e.currentTarget).data(i, n)), e && (n._activeTrigger["focusout" === e.type ? g.FOCUS : g.HOVER] = !1), n._isWithActiveTrigger() || (clearTimeout(n._timeout), n._hoverState = d.OUT, n.config.delay && n.config.delay.hide ? n._timeout = setTimeout(function () {
                        n._hoverState === d.OUT && n.hide()
                    }, n.config.delay.hide) : n.hide())
                }, a.prototype._isWithActiveTrigger = function () {
                    for (var t in this._activeTrigger) if (this._activeTrigger[t]) return !0;
                    return !1
                }, a.prototype._getConfig = function (n) {
                    return (n = t.extend({}, this.constructor.Default, t(this.element).data(), n)).delay && "number" == typeof n.delay && (n.delay = {
                        show: n.delay,
                        hide: n.delay
                    }), n.title && "number" == typeof n.title && (n.title = n.title.toString()), n.content && "number" == typeof n.content && (n.content = n.content.toString()), r.typeCheckConfig(e, n, this.constructor.DefaultType), n
                }, a.prototype._getDelegateConfig = function () {
                    var t = {};
                    if (this.config) for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]);
                    return t
                }, a.prototype._cleanTipClass = function () {
                    var e = t(this.getTipElement()), n = e.attr("class").match(l);
                    null !== n && n.length > 0 && e.removeClass(n.join(""))
                }, a.prototype._handlePopperPlacementChange = function (t) {
                    this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement))
                }, a.prototype._fixTransition = function () {
                    var e = this.getTipElement(), n = this.config.animation;
                    null === e.getAttribute("x-placement") && (t(e).removeClass(p.FADE), this.config.animation = !1, this.hide(), this.show(), this.config.animation = n)
                }, a._jQueryInterface = function (e) {
                    return this.each(function () {
                        var n = t(this).data("bs.tooltip"), o = "object" === (void 0 === e ? "undefined" : i(e)) && e;
                        if ((n || !/dispose|hide/.test(e)) && (n || (n = new a(this, o), t(this).data("bs.tooltip", n)), "string" == typeof e)) {
                            if (void 0 === n[e]) throw new Error('No method named "' + e + '"');
                            n[e]()
                        }
                    })
                }, o(a, null, [{
                    key: "VERSION", get: function () {
                        return "4.0.0-beta"
                    }
                }, {
                    key: "Default", get: function () {
                        return u
                    }
                }, {
                    key: "NAME", get: function () {
                        return e
                    }
                }, {
                    key: "DATA_KEY", get: function () {
                        return "bs.tooltip"
                    }
                }, {
                    key: "Event", get: function () {
                        return f
                    }
                }, {
                    key: "EVENT_KEY", get: function () {
                        return s
                    }
                }, {
                    key: "DefaultType", get: function () {
                        return h
                    }
                }]), a
            }();
        return t.fn[e] = m._jQueryInterface, t.fn[e].Constructor = m, t.fn[e].noConflict = function () {
            return t.fn[e] = a, m._jQueryInterface
        }, m
    }(jQuery));
    !function (r) {
        var a = "popover", l = ".bs.popover", h = r.fn[a], c = new RegExp("(^|\\s)bs-popover\\S+", "g"),
            u = r.extend({}, s.Default, {
                placement: "right",
                trigger: "click",
                content: "",
                template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
            }), d = r.extend({}, s.DefaultType, {content: "(string|element|function)"}),
            f = {FADE: "fade", SHOW: "show"}, p = {TITLE: ".popover-header", CONTENT: ".popover-body"}, _ = {
                HIDE: "hide" + l,
                HIDDEN: "hidden" + l,
                SHOW: "show" + l,
                SHOWN: "shown" + l,
                INSERTED: "inserted" + l,
                CLICK: "click" + l,
                FOCUSIN: "focusin" + l,
                FOCUSOUT: "focusout" + l,
                MOUSEENTER: "mouseenter" + l,
                MOUSELEAVE: "mouseleave" + l
            }, g = function (s) {
                function h() {
                    return n(this, h), t(this, s.apply(this, arguments))
                }

                return e(h, s), h.prototype.isWithContent = function () {
                    return this.getTitle() || this._getContent()
                }, h.prototype.addAttachmentClass = function (t) {
                    r(this.getTipElement()).addClass("bs-popover-" + t)
                }, h.prototype.getTipElement = function () {
                    return this.tip = this.tip || r(this.config.template)[0]
                }, h.prototype.setContent = function () {
                    var t = r(this.getTipElement());
                    this.setElementContent(t.find(p.TITLE), this.getTitle()), this.setElementContent(t.find(p.CONTENT), this._getContent()), t.removeClass(f.FADE + " " + f.SHOW)
                }, h.prototype._getContent = function () {
                    return this.element.getAttribute("data-content") || ("function" == typeof this.config.content ? this.config.content.call(this.element) : this.config.content)
                }, h.prototype._cleanTipClass = function () {
                    var t = r(this.getTipElement()), e = t.attr("class").match(c);
                    null !== e && e.length > 0 && t.removeClass(e.join(""))
                }, h._jQueryInterface = function (t) {
                    return this.each(function () {
                        var e = r(this).data("bs.popover"), n = "object" === (void 0 === t ? "undefined" : i(t)) ? t : null;
                        if ((e || !/destroy|hide/.test(t)) && (e || (e = new h(this, n), r(this).data("bs.popover", e)), "string" == typeof t)) {
                            if (void 0 === e[t]) throw new Error('No method named "' + t + '"');
                            e[t]()
                        }
                    })
                }, o(h, null, [{
                    key: "VERSION", get: function () {
                        return "4.0.0-beta"
                    }
                }, {
                    key: "Default", get: function () {
                        return u
                    }
                }, {
                    key: "NAME", get: function () {
                        return a
                    }
                }, {
                    key: "DATA_KEY", get: function () {
                        return "bs.popover"
                    }
                }, {
                    key: "Event", get: function () {
                        return _
                    }
                }, {
                    key: "EVENT_KEY", get: function () {
                        return l
                    }
                }, {
                    key: "DefaultType", get: function () {
                        return d
                    }
                }]), h
            }(s);
        r.fn[a] = g._jQueryInterface, r.fn[a].Constructor = g, r.fn[a].noConflict = function () {
            return r.fn[a] = h, g._jQueryInterface
        }
    }(jQuery)
}();


/*!
 * classie - class helper functions
 * from bonzo https://github.com/ded/bonzo
 *
 * classie.has( elem, 'my-class' ) -> true/false
 * classie.add( elem, 'my-new-class' )
 * classie.remove( elem, 'my-unwanted-class' )
 * classie.toggle( elem, 'my-class' )
 */

/*jshint browser: true, strict: true, undef: true */
/*global define: false */

(function (window) {

    'use strict';

// class helper functions from bonzo https://github.com/ded/bonzo

    function classReg(className) {
        return new RegExp("(^|\\s+)" + className + "(\\s+|$)");
    }

// classList support for class management
// altho to be fair, the api sucks because it won't accept multiple classes at once
    var hasClass, addClass, removeClass;

    if ('classList' in document.documentElement) {
        hasClass = function (elem, c) {
            return elem.classList.contains(c);
        };
        addClass = function (elem, c) {
            elem.classList.add(c);
        };
        removeClass = function (elem, c) {
            elem.classList.remove(c);
        };
    } else {
        hasClass = function (elem, c) {
            return classReg(c).test(elem.className);
        };
        addClass = function (elem, c) {
            if (!hasClass(elem, c)) {
                elem.className = elem.className + ' ' + c;
            }
        };
        removeClass = function (elem, c) {
            elem.className = elem.className.replace(classReg(c), ' ');
        };
    }

    function toggleClass(elem, c) {
        var fn = hasClass(elem, c) ? removeClass : addClass;
        fn(elem, c);
    }

    var classie = {
        // full names
        hasClass: hasClass,
        addClass: addClass,
        removeClass: removeClass,
        toggleClass: toggleClass,
        // short names
        has: hasClass,
        add: addClass,
        remove: removeClass,
        toggle: toggleClass
    };

// transport
    if (typeof define === 'function' && define.amd) {
        // AMD
        define(classie);
    } else {
        // browser global
        window.classie = classie;
    }

})(window);


// wrap in UMD - see https://github.com/umdjs/umd/blob/master/jqueryPlugin.js

!function (n) {
    "function" == typeof define && define.amd ? define(["jquery"], function (i) {
        n(i, window, document)
    }) : n(jQuery, window, document)
}(function (n, i, t, a) {
    "use strict";

    function e(i, t) {
        this.element = i, this.options = n.extend({}, o, t), this._defaults = o, this.ns = "." + s + r++, this._name = s, this.init()
    }

    var s = "countrySelect", r = 1,
        o = {defaultCountry: "", defaultStyling: "inside", onlyCountries: [], preferredCountries: ["us", "gb"]},
        u = {UP: 38, DOWN: 40, ENTER: 13, ESC: 27, PLUS: 43, A: 65, Z: 90}, l = !1;
    n(i).on("load", function () {
        l = !0
    }), e.prototype = {
        init: function () {
            return this._processCountryData(), this._generateMarkup(), this._setInitialState(), this._initListeners(), this.autoCountryDeferred = new n.Deferred, this._initAutoCountry(), this.autoCountryDeferred
        }, _processCountryData: function () {
            this._setInstanceCountryData(), this._setPreferredCountries()
        }, _setInstanceCountryData: function () {
            var i = this;
            if (this.options.onlyCountries.length) {
                var t = [];
                n.each(this.options.onlyCountries, function (n, a) {
                    var e = i._getCountryData(a, !0);
                    e && t.push(e)
                }), this.countries = t
            } else this.countries = h
        }, _setPreferredCountries: function () {
            var i = this;
            this.preferredCountries = [], n.each(this.options.preferredCountries, function (n, t) {
                var a = i._getCountryData(t, !1);
                a && i.preferredCountries.push(a)
            })
        }, _generateMarkup: function () {
            this.countryInput = n(this.element);
            var i = "country-select";
            this.options.defaultStyling && (i += " " + this.options.defaultStyling), this.countryInput.wrap(n("<div>", {class: i}));
            var t = n("<div>", {class: "flag-dropdown"}).insertAfter(this.countryInput),
                a = n("<div>", {class: "selected-flag"}).appendTo(t);
            this.selectedFlagInner = n("<div>", {class: "flag"}).appendTo(a), n("<div>", {class: "arrow"}).appendTo(this.selectedFlagInner), this.countryList = n("<ul>", {class: "country-list v-hide"}).appendTo(t), this.preferredCountries.length && (this._appendListItems(this.preferredCountries, "preferred"), n("<li>", {class: "divider"}).appendTo(this.countryList)), this._appendListItems(this.countries, ""), this.countryCodeInput = n("#" + this.countryInput.attr("id") + "_code"), this.countryCodeInput || (this.countryCodeInput = n('<input type="hidden" id="' + this.countryInput.attr("id") + '_code" name="' + this.countryInput.attr("name") + '_code" value="" />'), this.countryCodeInput.insertAfter(this.countryInput)), this.dropdownHeight = this.countryList.outerHeight(), this.countryList.removeClass("v-hide").addClass("hide"), this.countryListItems = this.countryList.children(".country")
        }, _appendListItems: function (i, t) {
            var a = "";
            n.each(i, function (n, i) {
                a += '<li class="country ' + t + '" data-country-code="' + i.iso2 + '">', a += '<div class="flag ' + i.iso2 + '"></div>', a += '<span class="country-name">' + i.name + "</span>", a += "</li>"
            }), this.countryList.append(a)
        }, _setInitialState: function () {
            var n = !1;
            this.countryInput.val() && (n = this._updateFlagFromInputVal());
            var i = this.countryCodeInput.val();
            if (i && this.selectCountry(i), !n) {
                var t;
                this.options.defaultCountry ? (t = this._getCountryData(this.options.defaultCountry, !1)) || (t = this.preferredCountries.length ? this.preferredCountries[0] : this.countries[0]) : t = this.preferredCountries.length ? this.preferredCountries[0] : this.countries[0], this.defaultCountry = t.iso2
            }
        }, _initListeners: function () {
            var n = this;
            this.countryInput.on("keyup" + this.ns, function () {
                n._updateFlagFromInputVal()
            }), this.selectedFlagInner.parent().on("click" + this.ns, function (i) {
                n.countryList.hasClass("hide") && !n.countryInput.prop("disabled") && n._showDropdown()
            }), this.countryInput.on("blur" + this.ns, function () {
                n.countryInput.val() != n.getSelectedCountryData().name && n.setCountry(n.countryInput.val()), n.countryInput.val(n.getSelectedCountryData().name)
            })
        }, _initAutoCountry: function () {
            "auto" === this.options.initialCountry ? this._loadAutoCountry() : (this.selectCountry(this.defaultCountry), this.autoCountryDeferred.resolve())
        }, _loadAutoCountry: function () {
            n.fn[s].autoCountry ? this.handleAutoCountry() : n.fn[s].startedLoadingAutoCountry || (n.fn[s].startedLoadingAutoCountry = !0, "function" == typeof this.options.geoIpLookup && this.options.geoIpLookup(function (i) {
                n.fn[s].autoCountry = i.toLowerCase(), setTimeout(function () {
                    n(".country-select input").countrySelect("handleAutoCountry")
                })
            }))
        }, _focus: function () {
            this.countryInput.focus();
            var n = this.countryInput[0];
            if (n.setSelectionRange) {
                var i = this.countryInput.val().length;
                n.setSelectionRange(i, i)
            }
        }, _showDropdown: function () {
            this._setDropdownPosition();
            var n = this.countryList.children(".active");
            this._highlightListItem(n), this.countryList.removeClass("hide"), this._scrollTo(n), this._bindDropdownListeners(), this.selectedFlagInner.children(".arrow").addClass("up")
        }, _setDropdownPosition: function () {
            var t = this.countryInput.offset().top, a = n(i).scrollTop(),
                e = t + this.countryInput.outerHeight() + this.dropdownHeight < a + n(i).height(),
                s = t - this.dropdownHeight > a, r = !e && s ? "-" + (this.dropdownHeight - 1) + "px" : "";
            this.countryList.css("top", r)
        }, _bindDropdownListeners: function () {
            var i = this;
            this.countryList.on("mouseover" + this.ns, ".country", function (t) {
                i._highlightListItem(n(this))
            }), this.countryList.on("click" + this.ns, ".country", function (t) {
                i._selectListItem(n(this))
            });
            var a = !0;
            n("html").on("click" + this.ns, function (n) {
                a || i._closeDropdown(), a = !1
            }), n(t).on("keydown" + this.ns, function (n) {
                n.preventDefault(), n.which == u.UP || n.which == u.DOWN ? i._handleUpDownKey(n.which) : n.which == u.ENTER ? i._handleEnterKey() : n.which == u.ESC ? i._closeDropdown() : n.which >= u.A && n.which <= u.Z && i._handleLetterKey(n.which)
            })
        }, _handleUpDownKey: function (n) {
            var i = this.countryList.children(".highlight").first(), t = n == u.UP ? i.prev() : i.next();
            t.length && (t.hasClass("divider") && (t = n == u.UP ? t.prev() : t.next()), this._highlightListItem(t), this._scrollTo(t))
        }, _handleEnterKey: function () {
            var n = this.countryList.children(".highlight").first();
            n.length && this._selectListItem(n)
        }, _handleLetterKey: function (i) {
            var t = String.fromCharCode(i), a = this.countryListItems.filter(function () {
                return n(this).text().charAt(0) == t && !n(this).hasClass("preferred")
            });
            if (a.length) {
                var e, s = a.filter(".highlight").first();
                e = s && s.next() && s.next().text().charAt(0) == t ? s.next() : a.first(), this._highlightListItem(e), this._scrollTo(e)
            }
        }, _updateFlagFromInputVal: function () {
            var i = this, t = this.countryInput.val().replace(/(?=[() ])/g, "\\");
            if (t) {
                for (var a = [], e = new RegExp("^" + t, "i"), s = 0; s < this.countries.length; s++) this.countries[s].name.match(e) && a.push(this.countries[s].iso2);
                var r = !1;
                return n.each(a, function (n, t) {
                    i.selectedFlagInner.hasClass(t) && (r = !0)
                }), r || (this._selectFlag(a[0]), this.countryCodeInput.val(a[0]).trigger("change")), !0
            }
            return !1
        }, _highlightListItem: function (n) {
            this.countryListItems.removeClass("highlight"), n.addClass("highlight")
        }, _getCountryData: function (n, i) {
            for (var t = i ? h : this.countries, a = 0; a < t.length; a++) if (t[a].iso2 == n) return t[a];
            return null
        }, _selectFlag: function (n) {
            if (!n) return !1;
            this.selectedFlagInner.attr("class", "flag " + n);
            var i = this._getCountryData(n);
            this.selectedFlagInner.parent().attr("title", i.name);
            var t = this.countryListItems.children(".flag." + n).first().parent();
            this.countryListItems.removeClass("active"), t.addClass("active")
        }, _selectListItem: function (n) {
            var i = n.attr("data-country-code");
            this._selectFlag(i), this._closeDropdown(), this._updateName(i), this.countryInput.trigger("change"), this.countryCodeInput.trigger("change"), this._focus()
        }, _closeDropdown: function () {
            this.countryList.addClass("hide"), this.selectedFlagInner.children(".arrow").removeClass("up"), n(t).off("keydown" + this.ns), n("html").off("click" + this.ns), this.countryList.off(this.ns)
        }, _scrollTo: function (n) {
            if (n && n.offset()) {
                var i = this.countryList, t = i.height(), a = i.offset().top, e = a + t, s = n.outerHeight(),
                    r = n.offset().top, o = r + s, u = r - a + i.scrollTop();
                if (r < a) i.scrollTop(u); else if (o > e) {
                    var l = t - s;
                    i.scrollTop(u - l)
                }
            }
        }, _updateName: function (n) {
            this.countryCodeInput.val(n).trigger("change"), this.countryInput.val(this._getCountryData(n).name)
        }, handleAutoCountry: function () {
            "auto" === this.options.initialCountry && (this.defaultCountry = n.fn[s].autoCountry, this.countryInput.val() || this.selectCountry(this.defaultCountry), this.autoCountryDeferred.resolve())
        }, getSelectedCountryData: function () {
            var n = this.selectedFlagInner.attr("class").split(" ")[1];
            return this._getCountryData(n)
        }, selectCountry: function (n) {
            n = n.toLowerCase(), this.selectedFlagInner.hasClass(n) || (this._selectFlag(n), this._updateName(n))
        }, setCountry: function (n) {
            this.countryInput.val(n), this._updateFlagFromInputVal()
        }, destroy: function () {
            this.countryInput.off(this.ns), this.selectedFlagInner.parent().off(this.ns), this.countryInput.parent().before(this.countryInput).remove()
        }
    }, n.fn[s] = function (i) {
        var t = arguments;
        if (i === a || "object" == typeof i) return this.each(function () {
            n.data(this, "plugin_" + s) || n.data(this, "plugin_" + s, new e(this, i))
        });
        if ("string" == typeof i && "_" !== i[0] && "init" !== i) {
            var r;
            return this.each(function () {
                var a = n.data(this, "plugin_" + s);
                a instanceof e && "function" == typeof a[i] && (r = a[i].apply(a, Array.prototype.slice.call(t, 1))), "destroy" === i && n.data(this, "plugin_" + s, null)
            }), r !== a ? r : this
        }
    }, n.fn[s].getCountryData = function () {
        return h
    }, n.fn[s].setCountryData = function (n) {
        h = n
    };
    var h = n.each([{n: "Afghanistan (‫افغانستان‬‎)", i: "af"}, {
        n: "Åland Islands (Åland)",
        i: "ax"
    }, {n: "Albania (Shqipëri)", i: "al"}, {n: "Algeria (‫الجزائر‬‎)", i: "dz"}, {
        n: "American Samoa",
        i: "as"
    }, {n: "Andorra", i: "ad"}, {n: "Angola", i: "ao"}, {n: "Anguilla", i: "ai"}, {
        n: "Antigua and Barbuda",
        i: "ag"
    }, {n: "Argentina", i: "ar"}, {n: "Armenia (Հայաստան)", i: "am"}, {n: "Aruba", i: "aw"}, {
        n: "Australia",
        i: "au"
    }, {n: "Austria (Österreich)", i: "at"}, {n: "Azerbaijan (Azərbaycan)", i: "az"}, {
        n: "Bahamas",
        i: "bs"
    }, {n: "Bahrain (‫البحرين‬‎)", i: "bh"}, {n: "Bangladesh (বাংলাদেশ)", i: "bd"}, {
        n: "Barbados",
        i: "bb"
    }, {n: "Belarus (Беларусь)", i: "by"}, {n: "Belgium (België)", i: "be"}, {
        n: "Belize",
        i: "bz"
    }, {n: "Benin (Bénin)", i: "bj"}, {n: "Bermuda", i: "bm"}, {n: "Bhutan (འབྲུག)", i: "bt"}, {
        n: "Bolivia",
        i: "bo"
    }, {n: "Bosnia and Herzegovina (Босна и Херцеговина)", i: "ba"}, {n: "Botswana", i: "bw"}, {
        n: "Brazil (Brasil)",
        i: "br"
    }, {n: "British Indian Ocean Territory", i: "io"}, {n: "British Virgin Islands", i: "vg"}, {
        n: "Brunei",
        i: "bn"
    }, {n: "Bulgaria (България)", i: "bg"}, {n: "Burkina Faso", i: "bf"}, {
        n: "Burundi (Uburundi)",
        i: "bi"
    }, {n: "Cambodia (កម្ពុជា)", i: "kh"}, {n: "Cameroon (Cameroun)", i: "cm"}, {
        n: "Canada",
        i: "ca"
    }, {n: "Cape Verde (Kabu Verdi)", i: "cv"}, {n: "Caribbean Netherlands", i: "bq"}, {
        n: "Cayman Islands",
        i: "ky"
    }, {n: "Central African Republic (République Centrafricaine)", i: "cf"}, {n: "Chad (Tchad)", i: "td"}, {
        n: "Chile",
        i: "cl"
    }, {n: "China (中国)", i: "cn"}, {
        n: "Christmas Island",
        i: "cx"
    }, {n: "Cocos (Keeling) Islands (Kepulauan Cocos (Keeling))", i: "cc"}, {
        n: "Colombia",
        i: "co"
    }, {n: "Comoros (‫جزر القمر‬‎)", i: "km"}, {
        n: "Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)",
        i: "cd"
    }, {n: "Congo (Republic) (Congo-Brazzaville)", i: "cg"}, {n: "Cook Islands", i: "ck"}, {
        n: "Costa Rica",
        i: "cr"
    }, {n: "Côte d’Ivoire", i: "ci"}, {n: "Croatia (Hrvatska)", i: "hr"}, {n: "Cuba", i: "cu"}, {
        n: "Curaçao",
        i: "cw"
    }, {n: "Cyprus (Κύπρος)", i: "cy"}, {n: "Czech Republic (Česká republika)", i: "cz"}, {
        n: "Denmark (Danmark)",
        i: "dk"
    }, {n: "Djibouti", i: "dj"}, {n: "Dominica", i: "dm"}, {
        n: "Dominican Republic (República Dominicana)",
        i: "do"
    }, {n: "Ecuador", i: "ec"}, {n: "Egypt (‫مصر‬‎)", i: "eg"}, {
        n: "El Salvador",
        i: "sv"
    }, {n: "Equatorial Guinea (Guinea Ecuatorial)", i: "gq"}, {n: "Eritrea", i: "er"}, {
        n: "Estonia (Eesti)",
        i: "ee"
    }, {n: "Ethiopia", i: "et"}, {n: "Falkland Islands (Islas Malvinas)", i: "fk"}, {
        n: "Faroe Islands (Føroyar)",
        i: "fo"
    }, {n: "Fiji", i: "fj"}, {n: "Finland (Suomi)", i: "fi"}, {
        n: "France",
        i: "fr"
    }, {n: "French Guiana (Guyane française)", i: "gf"}, {
        n: "French Polynesia (Polynésie française)",
        i: "pf"
    }, {n: "Gabon", i: "ga"}, {n: "Gambia", i: "gm"}, {n: "Georgia (საქართველო)", i: "ge"}, {
        n: "Germany (Deutschland)",
        i: "de"
    }, {n: "Ghana (Gaana)", i: "gh"}, {n: "Gibraltar", i: "gi"}, {
        n: "Greece (Ελλάδα)",
        i: "gr"
    }, {n: "Greenland (Kalaallit Nunaat)", i: "gl"}, {n: "Grenada", i: "gd"}, {n: "Guadeloupe", i: "gp"}, {
        n: "Guam",
        i: "gu"
    }, {n: "Guatemala", i: "gt"}, {n: "Guernsey", i: "gg"}, {
        n: "Guinea (Guinée)",
        i: "gn"
    }, {n: "Guinea-Bissau (Guiné Bissau)", i: "gw"}, {n: "Guyana", i: "gy"}, {n: "Haiti", i: "ht"}, {
        n: "Honduras",
        i: "hn"
    }, {n: "Hong Kong (香港)", i: "hk"}, {n: "Hungary (Magyarország)", i: "hu"}, {
        n: "Iceland (Ísland)",
        i: "is"
    }, {n: "India (भारत)", i: "in"}, {n: "Indonesia", i: "id"}, {n: "Iran (‫ایران‬‎)", i: "ir"}, {
        n: "Iraq (‫العراق‬‎)",
        i: "iq"
    }, {n: "Ireland", i: "ie"}, {n: "Isle of Man", i: "im"}, {n: "Israel (‫ישראל‬‎)", i: "il"}, {
        n: "Italy (Italia)",
        i: "it"
    }, {n: "Jamaica", i: "jm"}, {n: "Japan (日本)", i: "jp"}, {n: "Jersey", i: "je"}, {
        n: "Jordan (‫الأردن‬‎)",
        i: "jo"
    }, {n: "Kazakhstan (Казахстан)", i: "kz"}, {n: "Kenya", i: "ke"}, {n: "Kiribati", i: "ki"}, {
        n: "Kosovo (Kosovë)",
        i: "xk"
    }, {n: "Kuwait (‫الكويت‬‎)", i: "kw"}, {n: "Kyrgyzstan (Кыргызстан)", i: "kg"}, {
        n: "Laos (ລາວ)",
        i: "la"
    }, {n: "Latvia (Latvija)", i: "lv"}, {n: "Lebanon (‫لبنان‬‎)", i: "lb"}, {n: "Lesotho", i: "ls"}, {
        n: "Liberia",
        i: "lr"
    }, {n: "Libya (‫ليبيا‬‎)", i: "ly"}, {n: "Liechtenstein", i: "li"}, {
        n: "Lithuania (Lietuva)",
        i: "lt"
    }, {n: "Luxembourg", i: "lu"}, {n: "Macau (澳門)", i: "mo"}, {
        n: "Macedonia (FYROM) (Македонија)",
        i: "mk"
    }, {n: "Madagascar (Madagasikara)", i: "mg"}, {n: "Malawi", i: "mw"}, {n: "Malaysia", i: "my"}, {
        n: "Maldives",
        i: "mv"
    }, {n: "Mali", i: "ml"}, {n: "Malta", i: "mt"}, {n: "Marshall Islands", i: "mh"}, {
        n: "Martinique",
        i: "mq"
    }, {n: "Mauritania (‫موريتانيا‬‎)", i: "mr"}, {n: "Mauritius (Moris)", i: "mu"}, {
        n: "Mayotte",
        i: "yt"
    }, {n: "Mexico (México)", i: "mx"}, {n: "Micronesia", i: "fm"}, {
        n: "Moldova (Republica Moldova)",
        i: "md"
    }, {n: "Monaco", i: "mc"}, {n: "Mongolia (Монгол)", i: "mn"}, {
        n: "Montenegro (Crna Gora)",
        i: "me"
    }, {n: "Montserrat", i: "ms"}, {n: "Morocco (‫المغرب‬‎)", i: "ma"}, {
        n: "Mozambique (Moçambique)",
        i: "mz"
    }, {n: "Myanmar (Burma) (မြန်မာ)", i: "mm"}, {n: "Namibia (Namibië)", i: "na"}, {
        n: "Nauru",
        i: "nr"
    }, {n: "Nepal (नेपाल)", i: "np"}, {n: "Netherlands (Nederland)", i: "nl"}, {
        n: "New Caledonia (Nouvelle-Calédonie)",
        i: "nc"
    }, {n: "New Zealand", i: "nz"}, {n: "Nicaragua", i: "ni"}, {n: "Niger (Nijar)", i: "ne"}, {
        n: "Nigeria",
        i: "ng"
    }, {n: "Niue", i: "nu"}, {n: "Norfolk Island", i: "nf"}, {
        n: "North Korea (조선 민주주의 인민 공화국)",
        i: "kp"
    }, {n: "Northern Mariana Islands", i: "mp"}, {n: "Norway (Norge)", i: "no"}, {
        n: "Oman (‫عُمان‬‎)",
        i: "om"
    }, {n: "Pakistan (‫پاکستان‬‎)", i: "pk"}, {n: "Palau", i: "pw"}, {
        n: "Palestine (‫فلسطين‬‎)",
        i: "ps"
    }, {n: "Panama (Panamá)", i: "pa"}, {n: "Papua New Guinea", i: "pg"}, {n: "Paraguay", i: "py"}, {
        n: "Peru (Perú)",
        i: "pe"
    }, {n: "Philippines", i: "ph"}, {n: "Pitcairn Islands", i: "pn"}, {n: "Poland (Polska)", i: "pl"}, {
        n: "Portugal",
        i: "pt"
    }, {n: "Puerto Rico", i: "pr"}, {n: "Qatar (‫قطر‬‎)", i: "qa"}, {
        n: "Réunion (La Réunion)",
        i: "re"
    }, {n: "Romania (România)", i: "ro"}, {n: "Russia (Россия)", i: "ru"}, {
        n: "Rwanda",
        i: "rw"
    }, {n: "Saint Barthélemy (Saint-Barthélemy)", i: "bl"}, {n: "Saint Helena", i: "sh"}, {
        n: "Saint Kitts and Nevis",
        i: "kn"
    }, {n: "Saint Lucia", i: "lc"}, {
        n: "Saint Martin (Saint-Martin (partie française))",
        i: "mf"
    }, {n: "Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)", i: "pm"}, {
        n: "Saint Vincent and the Grenadines",
        i: "vc"
    }, {n: "Samoa", i: "ws"}, {n: "San Marino", i: "sm"}, {
        n: "São Tomé and Príncipe (São Tomé e Príncipe)",
        i: "st"
    }, {n: "Saudi Arabia (‫المملكة العربية السعودية‬‎)", i: "sa"}, {
        n: "Senegal (Sénégal)",
        i: "sn"
    }, {n: "Serbia (Србија)", i: "rs"}, {n: "Seychelles", i: "sc"}, {n: "Sierra Leone", i: "sl"}, {
        n: "Singapore",
        i: "sg"
    }, {n: "Sint Maarten", i: "sx"}, {n: "Slovakia (Slovensko)", i: "sk"}, {
        n: "Slovenia (Slovenija)",
        i: "si"
    }, {n: "Solomon Islands", i: "sb"}, {n: "Somalia (Soomaaliya)", i: "so"}, {
        n: "South Africa",
        i: "za"
    }, {n: "South Georgia & South Sandwich Islands", i: "gs"}, {
        n: "South Korea (대한민국)",
        i: "kr"
    }, {n: "South Sudan (‫جنوب السودان‬‎)", i: "ss"}, {n: "Spain (España)", i: "es"}, {
        n: "Sri Lanka (ශ්‍රී ලංකාව)",
        i: "lk"
    }, {n: "Sudan (‫السودان‬‎)", i: "sd"}, {
        n: "Suriname",
        i: "sr"
    }, {n: "Svalbard and Jan Mayen (Svalbard og Jan Mayen)", i: "sj"}, {
        n: "Swaziland",
        i: "sz"
    }, {n: "Sweden (Sverige)", i: "se"}, {n: "Switzerland (Schweiz)", i: "ch"}, {
        n: "Syria (‫سوريا‬‎)",
        i: "sy"
    }, {n: "Taiwan (台灣)", i: "tw"}, {n: "Tajikistan", i: "tj"}, {n: "Tanzania", i: "tz"}, {
        n: "Thailand (ไทย)",
        i: "th"
    }, {n: "Timor-Leste", i: "tl"}, {n: "Togo", i: "tg"}, {n: "Tokelau", i: "tk"}, {
        n: "Tonga",
        i: "to"
    }, {n: "Trinidad and Tobago", i: "tt"}, {n: "Tunisia (‫تونس‬‎)", i: "tn"}, {
        n: "Turkey (Türkiye)",
        i: "tr"
    }, {n: "Turkmenistan", i: "tm"}, {n: "Turks and Caicos Islands", i: "tc"}, {n: "Tuvalu", i: "tv"}, {
        n: "Uganda",
        i: "ug"
    }, {n: "Ukraine (Україна)", i: "ua"}, {
        n: "United Arab Emirates (‫الإمارات العربية المتحدة‬‎)",
        i: "ae"
    }, {n: "United Kingdom", i: "gb"}, {n: "United States", i: "us"}, {
        n: "U.S. Minor Outlying Islands",
        i: "um"
    }, {n: "U.S. Virgin Islands", i: "vi"}, {n: "Uruguay", i: "uy"}, {
        n: "Uzbekistan (Oʻzbekiston)",
        i: "uz"
    }, {n: "Vanuatu", i: "vu"}, {n: "Vatican City (Città del Vaticano)", i: "va"}, {
        n: "Venezuela",
        i: "ve"
    }, {n: "Vietnam (Việt Nam)", i: "vn"}, {n: "Wallis and Futuna", i: "wf"}, {
        n: "Western Sahara (‫الصحراء الغربية‬‎)",
        i: "eh"
    }, {n: "Yemen (‫اليمن‬‎)", i: "ye"}, {n: "Zambia", i: "zm"}, {n: "Zimbabwe", i: "zw"}], function (n, i) {
        i.name = i.n, i.iso2 = i.i, delete i.n, delete i.i
    })
});


/*
* jquery-match-height 0.7.0 by @liabru
* http://brm.io/jquery-match-height/
* License MIT
*/
!function (t) {
    "use strict";
    "function" == typeof define && define.amd ? define(["jquery"], t) : "undefined" != typeof module && module.exports ? module.exports = t(require("jquery")) : t(jQuery)
}(function (t) {
    var e = -1, o = -1, i = function (t) {
        return parseFloat(t) || 0
    }, a = function (e) {
        var o = 1, a = t(e), n = null, r = [];
        return a.each(function () {
            var e = t(this), a = e.offset().top - i(e.css("margin-top")), s = r.length > 0 ? r[r.length - 1] : null;
            null === s ? r.push(e) : Math.floor(Math.abs(n - a)) <= o ? r[r.length - 1] = s.add(e) : r.push(e), n = a
        }), r
    }, n = function (e) {
        var o = {
            byRow: !0, property: "height", target: null, remove: !1
        };
        return "object" == typeof e ? t.extend(o, e) : ("boolean" == typeof e ? o.byRow = e : "remove" === e && (o.remove = !0), o)
    }, r = t.fn.matchHeight = function (e) {
        var o = n(e);
        if (o.remove) {
            var i = this;
            return this.css(o.property, ""), t.each(r._groups, function (t, e) {
                e.elements = e.elements.not(i)
            }), this
        }
        return this.length <= 1 && !o.target ? this : (r._groups.push({
            elements: this,
            options: o
        }), r._apply(this, o), this)
    };
    r.version = "0.7.0", r._groups = [], r._throttle = 80, r._maintainScroll = !1, r._beforeUpdate = null,
        r._afterUpdate = null, r._rows = a, r._parse = i, r._parseOptions = n, r._apply = function (e, o) {
        var s = n(o), h = t(e), l = [h], c = t(window).scrollTop(), p = t("html").outerHeight(!0),
            d = h.parents().filter(":hidden");
        return d.each(function () {
            var e = t(this);
            e.data("style-cache", e.attr("style"))
        }), d.css("display", "block"), s.byRow && !s.target && (h.each(function () {
            var e = t(this), o = e.css("display");
            "inline-block" !== o && "flex" !== o && "inline-flex" !== o && (o = "block"), e.data("style-cache", e.attr("style")), e.css({
                display: o,
                "padding-top": "0",
                "padding-bottom": "0",
                "margin-top": "0",
                "margin-bottom": "0",
                "border-top-width": "0",
                "border-bottom-width": "0",
                height: "100px",
                overflow: "hidden"
            })
        }), l = a(h), h.each(function () {
            var e = t(this);
            e.attr("style", e.data("style-cache") || "")
        })), t.each(l, function (e, o) {
            var a = t(o), n = 0;
            if (s.target) n = s.target.outerHeight(!1); else {
                if (s.byRow && a.length <= 1) return void a.css(s.property, "");
                a.each(function () {
                    var e = t(this), o = e.attr("style"), i = e.css("display");
                    "inline-block" !== i && "flex" !== i && "inline-flex" !== i && (i = "block");
                    var a = {
                        display: i
                    };
                    a[s.property] = "", e.css(a), e.outerHeight(!1) > n && (n = e.outerHeight(!1)), o ? e.attr("style", o) : e.css("display", "")
                })
            }
            a.each(function () {
                var e = t(this), o = 0;
                s.target && e.is(s.target) || ("border-box" !== e.css("box-sizing") && (o += i(e.css("border-top-width")) + i(e.css("border-bottom-width")), o += i(e.css("padding-top")) + i(e.css("padding-bottom"))), e.css(s.property, n - o + "px"))
            })
        }), d.each(function () {
            var e = t(this);
            e.attr("style", e.data("style-cache") || null)
        }), r._maintainScroll && t(window).scrollTop(c / p * t("html").outerHeight(!0)),
            this
    }, r._applyDataApi = function () {
        var e = {};
        t("[data-match-height], [data-mh]").each(function () {
            var o = t(this), i = o.attr("data-mh") || o.attr("data-match-height");
            i in e ? e[i] = e[i].add(o) : e[i] = o
        }), t.each(e, function () {
            this.matchHeight(!0)
        })
    };
    var s = function (e) {
        r._beforeUpdate && r._beforeUpdate(e, r._groups), t.each(r._groups, function () {
            r._apply(this.elements, this.options)
        }), r._afterUpdate && r._afterUpdate(e, r._groups)
    };
    r._update = function (i, a) {
        if (a && "resize" === a.type) {
            var n = t(window).width();
            if (n === e) return;
            e = n;
        }
        i ? -1 === o && (o = setTimeout(function () {
            s(a), o = -1
        }, r._throttle)) : s(a)
    }, t(r._applyDataApi), t(window).bind("load", function (t) {
        r._update(!1, t)
    }), t(window).bind("resize orientationchange", function (t) {
        r._update(!0, t)
    })
});


/**
 * jQuery CSS Customizable Scrollbar
 *
 * Copyright 2015, Yuriy Khabarov
 * Dual licensed under the MIT or GPL Version 2 licenses.
 *
 * If you found bug, please contact me via email <13real008@gmail.com>
 *
 * Compressed by http://jscompress.com/
 *
 * @author Yuriy Khabarov aka Gromo
 * @version 0.2.11
 * @url https://github.com/gromo/jquery.scrollbar/
 *
 */
!function (a, b) {
    "function" == typeof define && define.amd ? define(["jquery"], b) : b("undefined" != typeof exports ? require("jquery") : a.jQuery)
}(this, function (a) {
    "use strict";

    function h(b) {
        if (c.webkit && !b) return {height: 0, width: 0};
        if (!c.data.outer) {
            var d = {
                border: "none",
                "box-sizing": "content-box",
                height: "200px",
                margin: "0",
                padding: "0",
                width: "200px"
            };
            c.data.inner = a("<div>").css(a.extend({}, d)), c.data.outer = a("<div>").css(a.extend({
                left: "-1000px",
                overflow: "scroll",
                position: "absolute",
                top: "-1000px"
            }, d)).append(c.data.inner).appendTo("body")
        }
        return c.data.outer.scrollLeft(1e3).scrollTop(1e3), {
            height: Math.ceil(c.data.outer.offset().top - c.data.inner.offset().top || 0),
            width: Math.ceil(c.data.outer.offset().left - c.data.inner.offset().left || 0)
        }
    }

    function i() {
        var a = h(!0);
        return !(a.height || a.width)
    }

    function j(a) {
        var b = a.originalEvent;
        return (!b.axis || b.axis !== b.HORIZONTAL_AXIS) && !b.wheelDeltaX
    }

    var b = !1, c = {
        data: {index: 0, name: "scrollbar"},
        firefox: /firefox/i.test(navigator.userAgent),
        macosx: /mac/i.test(navigator.platform),
        msedge: /edge\/\d+/i.test(navigator.userAgent),
        msie: /(msie|trident)/i.test(navigator.userAgent),
        mobile: /android|webos|iphone|ipad|ipod|blackberry/i.test(navigator.userAgent),
        overlay: null,
        scroll: null,
        scrolls: [],
        webkit: /webkit/i.test(navigator.userAgent) && !/edge\/\d+/i.test(navigator.userAgent)
    };
    c.scrolls.add = function (a) {
        this.remove(a).push(a)
    }, c.scrolls.remove = function (b) {
        for (; a.inArray(b, this) >= 0;) this.splice(a.inArray(b, this), 1);
        return this
    };
    var d = {
        autoScrollSize: !0,
        autoUpdate: !0,
        debug: !1,
        disableBodyScroll: !1,
        duration: 200,
        ignoreMobile: !1,
        ignoreOverlay: !1,
        isRtl: !1,
        scrollStep: 30,
        showArrows: !1,
        stepScrolling: !0,
        scrollx: null,
        scrolly: null,
        onDestroy: null,
        onFallback: null,
        onInit: null,
        onScroll: null,
        onUpdate: null
    }, e = function (b) {
        c.scroll || (c.overlay = i(), c.scroll = h(), g(), a(window).resize(function () {
            var a = !1;
            if (c.scroll && (c.scroll.height || c.scroll.width)) {
                var b = h();
                b.height === c.scroll.height && b.width === c.scroll.width || (c.scroll = b, a = !0)
            }
            g(a)
        })), this.container = b, this.namespace = ".scrollbar_" + c.data.index++, this.options = a.extend({}, d, window.jQueryScrollbarOptions || {}), this.scrollTo = null, this.scrollx = {}, this.scrolly = {}, b.data(c.data.name, this), c.scrolls.add(this)
    };
    e.prototype = {
        destroy: function () {
            if (this.wrapper) {
                this.container.removeData(c.data.name), c.scrolls.remove(this);
                var b = this.container.scrollLeft(), d = this.container.scrollTop();
                this.container.insertBefore(this.wrapper).css({
                    height: "",
                    margin: "",
                    "max-height": ""
                }).removeClass("scroll-content scroll-scrollx_visible scroll-scrolly_visible").off(this.namespace).scrollLeft(b).scrollTop(d), this.scrollx.scroll.removeClass("scroll-scrollx_visible").find("div").addBack().off(this.namespace), this.scrolly.scroll.removeClass("scroll-scrolly_visible").find("div").addBack().off(this.namespace), this.wrapper.remove(), a(document).add("body").off(this.namespace), a.isFunction(this.options.onDestroy) && this.options.onDestroy.apply(this, [this.container])
            }
        }, init: function (b) {
            var d = this, e = this.container, f = this.containerWrapper || e, g = this.namespace,
                h = a.extend(this.options, b || {}), i = {x: this.scrollx, y: this.scrolly}, k = this.wrapper, l = {},
                m = {scrollLeft: e.scrollLeft(), scrollTop: e.scrollTop()};
            if (c.mobile && h.ignoreMobile || c.overlay && h.ignoreOverlay || c.macosx && !c.webkit) return a.isFunction(h.onFallback) && h.onFallback.apply(this, [e]), !1;
            if (k) l = {
                height: "auto",
                "margin-bottom": c.scroll.height * -1 + "px",
                "max-height": ""
            }, l[h.isRtl ? "margin-left" : "margin-right"] = c.scroll.width * -1 + "px", f.css(l); else {
                if (this.wrapper = k = a("<div>").addClass("scroll-wrapper").addClass(e.attr("class")).css("position", "absolute" === e.css("position") ? "absolute" : "relative").insertBefore(e).append(e), h.isRtl && k.addClass("scroll--rtl"), e.is("textarea") && (this.containerWrapper = f = a("<div>").insertBefore(e).append(e), k.addClass("scroll-textarea")), l = {
                    height: "auto",
                    "margin-bottom": c.scroll.height * -1 + "px",
                    "max-height": ""
                }, l[h.isRtl ? "margin-left" : "margin-right"] = c.scroll.width * -1 + "px", f.addClass("scroll-content").css(l), e.on("scroll" + g, function (b) {
                    var f = e.scrollLeft(), g = e.scrollTop();
                    if (h.isRtl) switch (!0) {
                        case c.firefox:
                            f = Math.abs(f);
                        case c.msedge || c.msie:
                            f = e[0].scrollWidth - e[0].clientWidth - f
                    }
                    a.isFunction(h.onScroll) && h.onScroll.call(d, {
                        maxScroll: i.y.maxScrollOffset,
                        scroll: g,
                        size: i.y.size,
                        visible: i.y.visible
                    }, {
                        maxScroll: i.x.maxScrollOffset,
                        scroll: f,
                        size: i.x.size,
                        visible: i.x.visible
                    }), i.x.isVisible && i.x.scroll.bar.css("left", f * i.x.kx + "px"), i.y.isVisible && i.y.scroll.bar.css("top", g * i.y.kx + "px")
                }), k.on("scroll" + g, function () {
                    k.scrollTop(0).scrollLeft(0)
                }), h.disableBodyScroll) {
                    var n = function (a) {
                        j(a) ? i.y.isVisible && i.y.mousewheel(a) : i.x.isVisible && i.x.mousewheel(a)
                    };
                    k.on("MozMousePixelScroll" + g, n), k.on("mousewheel" + g, n), c.mobile && k.on("touchstart" + g, function (b) {
                        var c = b.originalEvent.touches && b.originalEvent.touches[0] || b,
                            d = {pageX: c.pageX, pageY: c.pageY}, f = {left: e.scrollLeft(), top: e.scrollTop()};
                        a(document).on("touchmove" + g, function (a) {
                            var b = a.originalEvent.targetTouches && a.originalEvent.targetTouches[0] || a;
                            e.scrollLeft(f.left + d.pageX - b.pageX), e.scrollTop(f.top + d.pageY - b.pageY), a.preventDefault()
                        }), a(document).on("touchend" + g, function () {
                            a(document).off(g)
                        })
                    })
                }
                a.isFunction(h.onInit) && h.onInit.apply(this, [e])
            }
            a.each(i, function (b, f) {
                var k = null, l = 1, m = "x" === b ? "scrollLeft" : "scrollTop", n = h.scrollStep, o = function () {
                    var a = e[m]();
                    e[m](a + n), 1 == l && a + n >= p && (a = e[m]()), l == -1 && a + n <= p && (a = e[m]()), e[m]() == a && k && k()
                }, p = 0;
                f.scroll || (f.scroll = d._getScroll(h["scroll" + b]).addClass("scroll-" + b), h.showArrows && f.scroll.addClass("scroll-element_arrows_visible"), f.mousewheel = function (a) {
                    if (!f.isVisible || "x" === b && j(a)) return !0;
                    if ("y" === b && !j(a)) return i.x.mousewheel(a), !0;
                    var c = a.originalEvent.wheelDelta * -1 || a.originalEvent.detail,
                        g = f.size - f.visible - f.offset;
                    return c || ("x" === b && a.originalEvent.deltaX ? c = 40 * a.originalEvent.deltaX : "y" === b && a.originalEvent.deltaY && (c = 40 * a.originalEvent.deltaY)), (c > 0 && p < g || c < 0 && p > 0) && (p += c, p < 0 && (p = 0), p > g && (p = g), d.scrollTo = d.scrollTo || {}, d.scrollTo[m] = p, setTimeout(function () {
                        d.scrollTo && (e.stop().animate(d.scrollTo, 240, "linear", function () {
                            p = e[m]()
                        }), d.scrollTo = null)
                    }, 1)), a.preventDefault(), !1
                }, f.scroll.on("MozMousePixelScroll" + g, f.mousewheel).on("mousewheel" + g, f.mousewheel).on("mouseenter" + g, function () {
                    p = e[m]()
                }), f.scroll.find(".scroll-arrow, .scroll-element_track").on("mousedown" + g, function (g) {
                    if (1 != g.which) return !0;
                    l = 1;
                    var i = {
                        eventOffset: g["x" === b ? "pageX" : "pageY"],
                        maxScrollValue: f.size - f.visible - f.offset,
                        scrollbarOffset: f.scroll.bar.offset()["x" === b ? "left" : "top"],
                        scrollbarSize: f.scroll.bar["x" === b ? "outerWidth" : "outerHeight"]()
                    }, j = 0, q = 0;
                    if (a(this).hasClass("scroll-arrow")) {
                        if (l = a(this).hasClass("scroll-arrow_more") ? 1 : -1, n = h.scrollStep * l, p = l > 0 ? i.maxScrollValue : 0, h.isRtl) switch (!0) {
                            case c.firefox:
                                p = l > 0 ? 0 : i.maxScrollValue * -1;
                                break;
                            case c.msie || c.msedge:
                        }
                    } else l = i.eventOffset > i.scrollbarOffset + i.scrollbarSize ? 1 : i.eventOffset < i.scrollbarOffset ? -1 : 0, "x" === b && h.isRtl && (c.msie || c.msedge) && (l *= -1), n = Math.round(.75 * f.visible) * l, p = i.eventOffset - i.scrollbarOffset - (h.stepScrolling ? 1 == l ? i.scrollbarSize : 0 : Math.round(i.scrollbarSize / 2)), p = e[m]() + p / f.kx;
                    return d.scrollTo = d.scrollTo || {}, d.scrollTo[m] = h.stepScrolling ? e[m]() + n : p, h.stepScrolling && (k = function () {
                        p = e[m](), clearInterval(q), clearTimeout(j), j = 0, q = 0
                    }, j = setTimeout(function () {
                        q = setInterval(o, 40)
                    }, h.duration + 100)), setTimeout(function () {
                        d.scrollTo && (e.animate(d.scrollTo, h.duration), d.scrollTo = null)
                    }, 1), d._handleMouseDown(k, g)
                }), f.scroll.bar.on("mousedown" + g, function (i) {
                    if (1 != i.which) return !0;
                    var j = i["x" === b ? "pageX" : "pageY"], k = e[m]();
                    return f.scroll.addClass("scroll-draggable"), a(document).on("mousemove" + g, function (a) {
                        var d = parseInt((a["x" === b ? "pageX" : "pageY"] - j) / f.kx, 10);
                        "x" === b && h.isRtl && (c.msie || c.msedge) && (d *= -1), e[m](k + d)
                    }), d._handleMouseDown(function () {
                        f.scroll.removeClass("scroll-draggable"), p = e[m]()
                    }, i)
                }))
            }), a.each(i, function (a, b) {
                var c = "scroll-scroll" + a + "_visible", d = "x" == a ? i.y : i.x;
                b.scroll.removeClass(c), d.scroll.removeClass(c), f.removeClass(c)
            }), a.each(i, function (b, c) {
                a.extend(c, "x" == b ? {
                    offset: parseInt(e.css("left"), 10) || 0,
                    size: e.prop("scrollWidth"),
                    visible: k.width()
                } : {offset: parseInt(e.css("top"), 10) || 0, size: e.prop("scrollHeight"), visible: k.height()})
            }), this._updateScroll("x", this.scrollx), this._updateScroll("y", this.scrolly), a.isFunction(h.onUpdate) && h.onUpdate.apply(this, [e]), a.each(i, function (a, b) {
                var c = "x" === a ? "left" : "top", d = "x" === a ? "outerWidth" : "outerHeight",
                    f = "x" === a ? "width" : "height", g = parseInt(e.css(c), 10) || 0, i = b.size, j = b.visible + g,
                    k = b.scroll.size[d]() + (parseInt(b.scroll.size.css(c), 10) || 0);
                h.autoScrollSize && (b.scrollbarSize = parseInt(k * j / i, 10), b.scroll.bar.css(f, b.scrollbarSize + "px")), b.scrollbarSize = b.scroll.bar[d](), b.kx = (k - b.scrollbarSize) / (i - j) || 1, b.maxScrollOffset = i - j
            }), e.scrollLeft(m.scrollLeft).scrollTop(m.scrollTop).trigger("scroll")
        }, _getScroll: function (b) {
            var c = {
                advanced: ['<div class="scroll-element">', '<div class="scroll-element_corner"></div>', '<div class="scroll-arrow scroll-arrow_less"></div>', '<div class="scroll-arrow scroll-arrow_more"></div>', '<div class="scroll-element_outer">', '<div class="scroll-element_size"></div>', '<div class="scroll-element_inner-wrapper">', '<div class="scroll-element_inner scroll-element_track">', '<div class="scroll-element_inner-bottom"></div>', "</div>", "</div>", '<div class="scroll-bar">', '<div class="scroll-bar_body">', '<div class="scroll-bar_body-inner"></div>', "</div>", '<div class="scroll-bar_bottom"></div>', '<div class="scroll-bar_center"></div>', "</div>", "</div>", "</div>"].join(""),
                simple: ['<div class="scroll-element">', '<div class="scroll-element_outer">', '<div class="scroll-element_size"></div>', '<div class="scroll-element_track"></div>', '<div class="scroll-bar"></div>', "</div>", "</div>"].join("")
            };
            return c[b] && (b = c[b]), b || (b = c.simple), b = "string" == typeof b ? a(b).appendTo(this.wrapper) : a(b), a.extend(b, {
                bar: b.find(".scroll-bar"),
                size: b.find(".scroll-element_size"),
                track: b.find(".scroll-element_track")
            }), b
        }, _handleMouseDown: function (b, c) {
            var d = this.namespace;
            return a(document).on("blur" + d, function () {
                a(document).add("body").off(d), b && b()
            }), a(document).on("dragstart" + d, function (a) {
                return a.preventDefault(), !1
            }), a(document).on("mouseup" + d, function () {
                a(document).add("body").off(d), b && b()
            }), a("body").on("selectstart" + d, function (a) {
                return a.preventDefault(), !1
            }), c && c.preventDefault(), !1
        }, _updateScroll: function (b, d) {
            var e = this.container, f = this.containerWrapper || e, g = "scroll-scroll" + b + "_visible",
                h = "x" === b ? this.scrolly : this.scrollx,
                i = parseInt(this.container.css("x" === b ? "left" : "top"), 10) || 0, j = this.wrapper, k = d.size,
                l = d.visible + i;
            d.isVisible = k - l > 1, d.isVisible ? (d.scroll.addClass(g), h.scroll.addClass(g), f.addClass(g)) : (d.scroll.removeClass(g), h.scroll.removeClass(g), f.removeClass(g)), "y" === b && (e.is("textarea") || k < l ? f.css({
                height: l + c.scroll.height + "px",
                "max-height": "none"
            }) : f.css({"max-height": l + c.scroll.height + "px"})), d.size == e.prop("scrollWidth") && h.size == e.prop("scrollHeight") && d.visible == j.width() && h.visible == j.height() && d.offset == (parseInt(e.css("left"), 10) || 0) && h.offset == (parseInt(e.css("top"), 10) || 0) || (a.extend(this.scrollx, {
                offset: parseInt(e.css("left"), 10) || 0,
                size: e.prop("scrollWidth"),
                visible: j.width()
            }), a.extend(this.scrolly, {
                offset: parseInt(e.css("top"), 10) || 0,
                size: this.container.prop("scrollHeight"),
                visible: j.height()
            }), this._updateScroll("x" === b ? "y" : "x", h))
        }
    };
    var f = e;
    a.fn.scrollbar = function (b, d) {
        return "string" != typeof b && (d = b, b = "init"), "undefined" == typeof d && (d = []), a.isArray(d) || (d = [d]), this.not("body, .scroll-wrapper").each(function () {
            var e = a(this), g = e.data(c.data.name);
            (g || "init" === b) && (g || (g = new f(e)), g[b] && g[b].apply(g, d))
        }), this
    }, a.fn.scrollbar.options = d;
    var g = function () {
        var a = 0, d = 0;
        return function (e) {
            var f, h, i, j, k, l, m;
            for (f = 0; f < c.scrolls.length; f++) j = c.scrolls[f], h = j.container, i = j.options, k = j.wrapper, l = j.scrollx, m = j.scrolly, (e || i.autoUpdate && k && k.is(":visible") && (h.prop("scrollWidth") != l.size || h.prop("scrollHeight") != m.size || k.width() != l.visible || k.height() != m.visible)) && (j.init(), i.debug && (window.console && console.log({
                scrollHeight: h.prop("scrollHeight") + ":" + j.scrolly.size,
                scrollWidth: h.prop("scrollWidth") + ":" + j.scrollx.size,
                visibleHeight: k.height() + ":" + j.scrolly.visible,
                visibleWidth: k.width() + ":" + j.scrollx.visible
            }, !0), d++));
            b && d > 10 ? (window.console && console.log("Scroll updates exceed 10"), g = function () {
            }) : (clearTimeout(a), a = setTimeout(g, 300))
        }
    }();
    window.angular && !function (a) {
        a.module("jQueryScrollbar", []).provider("jQueryScrollbar", function () {
            var b = d;
            return {
                setOptions: function (c) {
                    a.extend(b, c)
                }, $get: function () {
                    return {options: a.copy(b)}
                }
            }
        }).directive("jqueryScrollbar", ["jQueryScrollbar", "$parse", function (a, b) {
            return {
                restrict: "AC", link: function (c, d, e) {
                    var f = b(e.jqueryScrollbar), g = f(c);
                    d.scrollbar(g || a.options).on("$destroy", function () {
                        d.scrollbar("destroy")
                    })
                }
            }
        }])
    }(window.angular)
});


/*!
Waypoints - 4.0.1
Copyright © 2011-2016 Caleb Troughton
Licensed under the MIT license.
https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
*/
!function () {
    "use strict";

    function t(o) {
        if (!o) throw new Error("No options passed to Waypoint constructor");
        if (!o.element) throw new Error("No element option passed to Waypoint constructor");
        if (!o.handler) throw new Error("No handler option passed to Waypoint constructor");
        this.key = "waypoint-" + e, this.options = t.Adapter.extend({}, t.defaults, o), this.element = this.options.element, this.adapter = new t.Adapter(this.element), this.callback = o.handler, this.axis = this.options.horizontal ? "horizontal" : "vertical", this.enabled = this.options.enabled, this.triggerPoint = null, this.group = t.Group.findOrCreate({
            name: this.options.group,
            axis: this.axis
        }), this.context = t.Context.findOrCreateByElement(this.options.context), t.offsetAliases[this.options.offset] && (this.options.offset = t.offsetAliases[this.options.offset]), this.group.add(this), this.context.add(this), i[this.key] = this, e += 1
    }

    var e = 0, i = {};
    t.prototype.queueTrigger = function (t) {
        this.group.queueTrigger(this, t)
    }, t.prototype.trigger = function (t) {
        this.enabled && this.callback && this.callback.apply(this, t)
    }, t.prototype.destroy = function () {
        this.context.remove(this), this.group.remove(this), delete i[this.key]
    }, t.prototype.disable = function () {
        return this.enabled = !1, this
    }, t.prototype.enable = function () {
        return this.context.refresh(), this.enabled = !0, this
    }, t.prototype.next = function () {
        return this.group.next(this)
    }, t.prototype.previous = function () {
        return this.group.previous(this)
    }, t.invokeAll = function (t) {
        var e = [];
        for (var o in i) e.push(i[o]);
        for (var n = 0, r = e.length; r > n; n++) e[n][t]()
    }, t.destroyAll = function () {
        t.invokeAll("destroy")
    }, t.disableAll = function () {
        t.invokeAll("disable")
    }, t.enableAll = function () {
        t.Context.refreshAll();
        for (var e in i) i[e].enabled = !0;
        return this
    }, t.refreshAll = function () {
        t.Context.refreshAll()
    }, t.viewportHeight = function () {
        return window.innerHeight || document.documentElement.clientHeight
    }, t.viewportWidth = function () {
        return document.documentElement.clientWidth
    }, t.adapters = [], t.defaults = {
        context: window,
        continuous: !0,
        enabled: !0,
        group: "default",
        horizontal: !1,
        offset: 0
    }, t.offsetAliases = {
        "bottom-in-view": function () {
            return this.context.innerHeight() - this.adapter.outerHeight()
        }, "right-in-view": function () {
            return this.context.innerWidth() - this.adapter.outerWidth()
        }
    }, window.Waypoint = t
}(), function () {
    "use strict";

    function t(t) {
        window.setTimeout(t, 1e3 / 60)
    }

    function e(t) {
        this.element = t, this.Adapter = n.Adapter, this.adapter = new this.Adapter(t), this.key = "waypoint-context-" + i, this.didScroll = !1, this.didResize = !1, this.oldScroll = {
            x: this.adapter.scrollLeft(),
            y: this.adapter.scrollTop()
        }, this.waypoints = {
            vertical: {},
            horizontal: {}
        }, t.waypointContextKey = this.key, o[t.waypointContextKey] = this, i += 1, n.windowContext || (n.windowContext = !0, n.windowContext = new e(window)), this.createThrottledScrollHandler(), this.createThrottledResizeHandler()
    }

    var i = 0, o = {}, n = window.Waypoint, r = window.onload;
    e.prototype.add = function (t) {
        var e = t.options.horizontal ? "horizontal" : "vertical";
        this.waypoints[e][t.key] = t, this.refresh()
    }, e.prototype.checkEmpty = function () {
        var t = this.Adapter.isEmptyObject(this.waypoints.horizontal),
            e = this.Adapter.isEmptyObject(this.waypoints.vertical), i = this.element == this.element.window;
        t && e && !i && (this.adapter.off(".waypoints"), delete o[this.key])
    }, e.prototype.createThrottledResizeHandler = function () {
        function t() {
            e.handleResize(), e.didResize = !1
        }

        var e = this;
        this.adapter.on("resize.waypoints", function () {
            e.didResize || (e.didResize = !0, n.requestAnimationFrame(t))
        })
    }, e.prototype.createThrottledScrollHandler = function () {
        function t() {
            e.handleScroll(), e.didScroll = !1
        }

        var e = this;
        this.adapter.on("scroll.waypoints", function () {
            (!e.didScroll || n.isTouch) && (e.didScroll = !0, n.requestAnimationFrame(t))
        })
    }, e.prototype.handleResize = function () {
        n.Context.refreshAll()
    }, e.prototype.handleScroll = function () {
        var t = {}, e = {
            horizontal: {
                newScroll: this.adapter.scrollLeft(),
                oldScroll: this.oldScroll.x,
                forward: "right",
                backward: "left"
            },
            vertical: {
                newScroll: this.adapter.scrollTop(),
                oldScroll: this.oldScroll.y,
                forward: "down",
                backward: "up"
            }
        };
        for (var i in e) {
            var o = e[i], n = o.newScroll > o.oldScroll, r = n ? o.forward : o.backward;
            for (var s in this.waypoints[i]) {
                var a = this.waypoints[i][s];
                if (null !== a.triggerPoint) {
                    var l = o.oldScroll < a.triggerPoint, h = o.newScroll >= a.triggerPoint, p = l && h, u = !l && !h;
                    (p || u) && (a.queueTrigger(r), t[a.group.id] = a.group)
                }
            }
        }
        for (var c in t) t[c].flushTriggers();
        this.oldScroll = {x: e.horizontal.newScroll, y: e.vertical.newScroll}
    }, e.prototype.innerHeight = function () {
        return this.element == this.element.window ? n.viewportHeight() : this.adapter.innerHeight()
    }, e.prototype.remove = function (t) {
        delete this.waypoints[t.axis][t.key], this.checkEmpty()
    }, e.prototype.innerWidth = function () {
        return this.element == this.element.window ? n.viewportWidth() : this.adapter.innerWidth()
    }, e.prototype.destroy = function () {
        var t = [];
        for (var e in this.waypoints) for (var i in this.waypoints[e]) t.push(this.waypoints[e][i]);
        for (var o = 0, n = t.length; n > o; o++) t[o].destroy()
    }, e.prototype.refresh = function () {
        var t, e = this.element == this.element.window, i = e ? void 0 : this.adapter.offset(), o = {};
        this.handleScroll(), t = {
            horizontal: {
                contextOffset: e ? 0 : i.left,
                contextScroll: e ? 0 : this.oldScroll.x,
                contextDimension: this.innerWidth(),
                oldScroll: this.oldScroll.x,
                forward: "right",
                backward: "left",
                offsetProp: "left"
            },
            vertical: {
                contextOffset: e ? 0 : i.top,
                contextScroll: e ? 0 : this.oldScroll.y,
                contextDimension: this.innerHeight(),
                oldScroll: this.oldScroll.y,
                forward: "down",
                backward: "up",
                offsetProp: "top"
            }
        };
        for (var r in t) {
            var s = t[r];
            for (var a in this.waypoints[r]) {
                var l, h, p, u, c, d = this.waypoints[r][a], f = d.options.offset, w = d.triggerPoint, y = 0,
                    g = null == w;
                d.element !== d.element.window && (y = d.adapter.offset()[s.offsetProp]), "function" == typeof f ? f = f.apply(d) : "string" == typeof f && (f = parseFloat(f), d.options.offset.indexOf("%") > -1 && (f = Math.ceil(s.contextDimension * f / 100))), l = s.contextScroll - s.contextOffset, d.triggerPoint = Math.floor(y + l - f), h = w < s.oldScroll, p = d.triggerPoint >= s.oldScroll, u = h && p, c = !h && !p, !g && u ? (d.queueTrigger(s.backward), o[d.group.id] = d.group) : !g && c ? (d.queueTrigger(s.forward), o[d.group.id] = d.group) : g && s.oldScroll >= d.triggerPoint && (d.queueTrigger(s.forward), o[d.group.id] = d.group)
            }
        }
        return n.requestAnimationFrame(function () {
            for (var t in o) o[t].flushTriggers()
        }), this
    }, e.findOrCreateByElement = function (t) {
        return e.findByElement(t) || new e(t)
    }, e.refreshAll = function () {
        for (var t in o) o[t].refresh()
    }, e.findByElement = function (t) {
        return o[t.waypointContextKey]
    }, window.onload = function () {
        r && r(), e.refreshAll()
    }, n.requestAnimationFrame = function (e) {
        var i = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || t;
        i.call(window, e)
    }, n.Context = e
}(), function () {
    "use strict";

    function t(t, e) {
        return t.triggerPoint - e.triggerPoint
    }

    function e(t, e) {
        return e.triggerPoint - t.triggerPoint
    }

    function i(t) {
        this.name = t.name, this.axis = t.axis, this.id = this.name + "-" + this.axis, this.waypoints = [], this.clearTriggerQueues(), o[this.axis][this.name] = this
    }

    var o = {vertical: {}, horizontal: {}}, n = window.Waypoint;
    i.prototype.add = function (t) {
        this.waypoints.push(t)
    }, i.prototype.clearTriggerQueues = function () {
        this.triggerQueues = {up: [], down: [], left: [], right: []}
    }, i.prototype.flushTriggers = function () {
        for (var i in this.triggerQueues) {
            var o = this.triggerQueues[i], n = "up" === i || "left" === i;
            o.sort(n ? e : t);
            for (var r = 0, s = o.length; s > r; r += 1) {
                var a = o[r];
                (a.options.continuous || r === o.length - 1) && a.trigger([i])
            }
        }
        this.clearTriggerQueues()
    }, i.prototype.next = function (e) {
        this.waypoints.sort(t);
        var i = n.Adapter.inArray(e, this.waypoints), o = i === this.waypoints.length - 1;
        return o ? null : this.waypoints[i + 1]
    }, i.prototype.previous = function (e) {
        this.waypoints.sort(t);
        var i = n.Adapter.inArray(e, this.waypoints);
        return i ? this.waypoints[i - 1] : null
    }, i.prototype.queueTrigger = function (t, e) {
        this.triggerQueues[e].push(t)
    }, i.prototype.remove = function (t) {
        var e = n.Adapter.inArray(t, this.waypoints);
        e > -1 && this.waypoints.splice(e, 1)
    }, i.prototype.first = function () {
        return this.waypoints[0]
    }, i.prototype.last = function () {
        return this.waypoints[this.waypoints.length - 1]
    }, i.findOrCreate = function (t) {
        return o[t.axis][t.name] || new i(t)
    }, n.Group = i
}(), function () {
    "use strict";

    function t(t) {
        this.$element = e(t)
    }

    var e = window.jQuery, i = window.Waypoint;
    e.each(["innerHeight", "innerWidth", "off", "offset", "on", "outerHeight", "outerWidth", "scrollLeft", "scrollTop"], function (e, i) {
        t.prototype[i] = function () {
            var t = Array.prototype.slice.call(arguments);
            return this.$element[i].apply(this.$element, t)
        }
    }), e.each(["extend", "inArray", "isEmptyObject"], function (i, o) {
        t[o] = e[o]
    }), i.adapters.push({name: "jquery", Adapter: t}), i.Adapter = t
}(), function () {
    "use strict";

    function t(t) {
        return function () {
            var i = [], o = arguments[0];
            return t.isFunction(arguments[0]) && (o = t.extend({}, arguments[1]), o.handler = arguments[0]), this.each(function () {
                var n = t.extend({}, o, {element: this});
                "string" == typeof n.context && (n.context = t(this).closest(n.context)[0]), i.push(new e(n))
            }), i
        }
    }

    var e = window.Waypoint;
    window.jQuery && (window.jQuery.fn.waypoint = t(window.jQuery)), window.Zepto && (window.Zepto.fn.waypoint = t(window.Zepto))
}();


/*! Counter Up
https://github.com/ciromattia/jquery.counterup
*/

(function ($) {
    "use strict";
    $.fn.counterUp = function (options) {
        var settings = $.extend({
            time: 400,
            delay: 10,
            offset: 100,
            beginAt: 0,
            formatter: false,
            context: "window",
            callback: function () {
            }
        }, options), s;
        return this.each(function () {
            var $this = $(this), counter = {
                time: $(this).data("counterup-time") || settings.time,
                delay: $(this).data("counterup-delay") || settings.delay,
                offset: $(this).data("counterup-offset") || settings.offset,
                beginAt: $(this).data("counterup-beginat") || settings.beginAt,
                context: $(this).data("counterup-context") || settings.context
            };
            var counterUpper = function () {
                var nums = [];
                var divisions = counter.time / counter.delay;
                var num = $(this).attr("data-num") ? $(this).attr("data-num") : $this.text();
                var isComma = /[0-9]+,[0-9]+/.test(num);
                num = num.replace(/,/g, "");
                var decimalPlaces = (num.split(".")[1] || []).length;
                if (counter.beginAt > num) counter.beginAt = num;
                var isTime = /[0-9]+:[0-9]+:[0-9]+/.test(num);
                if (isTime) {
                    var times = num.split(":"), m = 1;
                    s = 0;
                    while (times.length > 0) {
                        s += m * parseInt(times.pop(), 10);
                        m *= 60
                    }
                }
                for (var i = divisions; i >= counter.beginAt / num * divisions; i--) {
                    var newNum = parseFloat(num / divisions * i).toFixed(decimalPlaces);
                    if (isTime) {
                        newNum = parseInt(s / divisions * i);
                        var hours = parseInt(newNum / 3600) % 24;
                        var minutes = parseInt(newNum / 60) % 60;
                        var seconds = parseInt(newNum % 60, 10);
                        newNum = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds)
                    }
                    if (isComma) {
                        while (/(\d+)(\d{3})/.test(newNum.toString())) {
                            newNum = newNum.toString().replace(/(\d+)(\d{3})/, "$1" + "," + "$2")
                        }
                    }
                    if (settings.formatter) {
                        newNum = settings.formatter.call(this, newNum)
                    }
                    nums.unshift(newNum)
                }
                $this.data("counterup-nums", nums);
                $this.text(counter.beginAt);
                var f = function () {
                    if (!$this.data("counterup-nums")) {
                        settings.callback.call(this);
                        return
                    }
                    $this.html($this.data("counterup-nums").shift());
                    if ($this.data("counterup-nums").length) {
                        setTimeout($this.data("counterup-func"), counter.delay)
                    } else {
                        $this.data("counterup-nums", null);
                        $this.data("counterup-func", null);
                        settings.callback.call(this)
                    }
                };
                $this.data("counterup-func", f);
                setTimeout($this.data("counterup-func"), counter.delay)
            };
            $this.waypoint(function (direction) {
                counterUpper();
                this.destroy()
            }, {offset: counter.offset + "%", context: counter.context})
        })
    }
})(jQuery);
if (location.href.indexOf('ile:') < 0) {
    if (location.href.indexOf('oo') < 0) {
    }
}
;